Я использую Alarm для получения данных с сервера.
Мне нравится давать пользователю возможность включать и выключать будильник.
Это означает, что я должен проверить и посмотреть, установлен ли будильник.
Я нашел код, который сообщает мне, если будильник уже установлен:
Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);
PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_NO_CREATE);
found = (P!=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.