2014-10-23 3 views
1

В комментариях к this вопрос: «Стандартный Android позволяет удалять вещи из этого списка на Android 3.0+, и это не влияет на события AlarmManager».Как отменить аварийный сигнал диспетчера аварийных сообщений, когда пользователь удаляет приложение из списка последних приложений?

Я хотел был бы отменить сигналы тревоги, если пользователь проверит приложение из списка последних приложений, но, похоже, мы не можем обработать прокрутку приложения из списка последних приложений, где можно было бы отключить будильник. У меня есть опция в приложении для пользователя, чтобы отменить сигнал тревоги, который выполняет этот код:

public static void cancelAlarm() { 
     if (alarmUp()) 
     { 
      alarmMgr.cancel(pendingIntent); 
     } 
    } 
    public static boolean alarmUp() { 
     return (pendingIntent != null); 
    } 

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

+0

Почему удаление приложения из недавнего списка требует отмены установленных вами аварийных сигналов? – Luksprog

+0

тревоги, которые я устанавливаю, являются периодическими тревогами, например, когда тревога отключается, я создаю другую, поэтому хотел отменить будильник, так как это может заставить пользователя думать, что удаление этого приложения привело к периодическим срабатываниям сигнализации. – Anubha

+0

Я не думаю, что ваши пользователи подумают об этом, лучшей альтернативой будет явный пользовательский интерфейс в самом приложении, чтобы отменить эти сигналы. – Luksprog

ответ

2

Два шаги, необходимые для достижения этой цели:

  1. Detect удаления приложения из списка Недавних. См. What Exactly Happens When You Swipe An Android App From the Recent Apps List?. Это лучшая информация, которую я нашел по этому вопросу.

  2. Отменить будильник. Ваш вопрос предполагает, что переменная pendingIntent по-прежнему имеет намерение, построенное ранее. Это не будет работать в операции, которая была выгружена. Вместо этого создайте намерение, которое составляет "equal to" (первоначальное намерение («их действие, данные, тип, класс и категории одинаковы») и отменить его.

Смежные вопросы