Problema no Android AlarmManager ao definir e redefinir um alarme

Eu uso um alarme para buscar dados do servidor. Eu gosto de dar ao usuário a opção de iniciar e parar o alarme. Isso significa que eu tenho que verificar e ver se o alarme já está definido. Encontrei um código que informa se o alarme já está definido:

Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);
PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_NO_CREATE);
found = (P!=null);

se o alarme já estiver definido, eu o cancelo, mas se não estiver definido, eu o defino (como uma alternância)

O problema é que isso funciona apenas uma vez. A primeira vez que o código acima para verificar os alarmes existentes retornará nulo, indicando que não há alarme, mas depois que eu cancelo o alarme, ele retorna um ponteiro para algo, mas o alarme não está em execução.

aqui está o código para definir o alarme

am = (AlarmManager) getSystemService(getApplicationContext().ALARM_SERVICE);
Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);
PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_CANCEL_CURRENT);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 60000, P); 

e aqui está o código para cancelar um alarme:

am = (AlarmManager) getSystemService(getApplicationContext().ALARM_SERVICE);
Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);
PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_CANCEL_CURRENT);
am.cancel(P);

Devo redefinir algo depois de cancelar um alarme para fazer com que o PendingIntent desapareça.

questionAnswers(1)

yourAnswerToTheQuestion