#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. Я знаю, что это устарело, но эта информация неверна, это проверит, был ли установлен сигнал тревоги с указанным намерением, а не если намерение было выполнено.