Android AlarmManager проблема с настройкой & сброс сигнала тревоги

Я использую Alarm для получения данных с сервера. Мне нравится давать пользователю возможность запускать и останавливать будильник. Это означает, что я должен проверить, установлен ли уже будильник. Я нашел код, который сообщает мне, что будильник уже установлен:

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

если будильник уже установлен, я отменяю его, но если он не установлен, я устанавливаю его (как переключатель)

Проблема в том, что это работает только один раз . Первый раз приведенный выше код для проверки существующих сигналов тревоги вернет null, что указывает на отсутствие сигнала тревоги, но после того, как я отменю сигнал тревоги, он вернет указатель к чему-то, но тревога не работает.

вот код для установки тревоги

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); 

и вот код для отмены тревоги:

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);

Могу ли я сбросить что-то после отмены тревоги, чтобы отключить PendingIntent.

9
задан Kemal 10 February 2011 в 22:01
поделиться