Я использую 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.