Как проверить, запущено ли ожидающее намерение, инициированное AlarmManager setRepeating?

#android #android-intent #broadcastreceiver #alarmmanager

#Android #android-намерение #broadcastreceiver #alarmmanager

Вопрос:

Я был бы рад узнать, как проверить, не запущено ли ожидающее намерение, инициируемое менеджером аварийных сигналов, который запускает действие в определенное время, указанное AlarmManager.setRepeating?

Чтобы быть более конкретным, у меня есть действие, которое запускает другое действие с заданным временем или временем повторения (которое работает). Но я хочу знать, был ли запрос уже задан пользователем? в этом случае я не должен запускать определенные значения.

Так я запускаю запланированное действие.

 Intent myIntent = new Intent(getBaseContext(),MyScheduledReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), 0, myIntent, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), interval, pendingIntent);
  

Комментарии:

1. Привет, спасибо. Рад, что это помогло. Может дать 1, который мог бы мне помочь. 🙂

2. На самом деле, вы должны ответить на свой собственный вопрос и принять ответ. Тогда этот вопрос не будет отображаться в списке «без ответа».

3. Спасибо @DavidWasser, я сделал то же самое

Ответ №1:

Хорошо, я думаю, мне удалось выяснить, как,

 //CHECKING IF PENDING INTENT IS ALREADY RUNNING
Intent checkIntent = new Intent(getApplicationContext(),MyScheduledReceiver.class);
alarmUp = (PendingIntent.getBroadcast(getBaseContext(), 0, checkIntent, PendingIntent.FLAG_NO_CREATE) != null);
  

Спасибо, надеюсь, это может быть кому-то полезно…

Комментарии:

1. это решение не работает для меня, PendingIntent. FLAG_NO_CREATE делает перенастроенный PendingIntent всегда нулевым.

2. Я знаю, что это устарело, но эта информация неверна, это проверит, был ли установлен сигнал тревоги с указанным намерением, а не если намерение было выполнено.