0

Я задал этот вопрос раньше, но кто-то подумал, что я недостаточно объяснил и не ответил на этот вопрос и никогда не возвращался к прежнему, несмотря на то, что у него был ответ после добавления объяснений. И теперь никто не заинтересован в предоставлении мне решения по этой теме. Поэтому я снова спрашиваю его здесь.Аварийное предупреждение Диалог возобновляется, когда приложение возобновляется

У меня есть приложение, в котором пользователь может установить будильник и ожидать, что приложение откроет экран (независимо от того, активно или нет в настоящее время приложение или в фоновом режиме или убито), в котором отображается сообщение с кнопкой OK. Что-то вроде этого:

enter image description here

Сценарий 1: Счастливый поток

Применение открыта и работает

  • Когда время для тревоги, диалог тревоги появляется на экране сообщение и кнопку ОК, и будильник начинает звонить.
  • Пользователь нажимает кнопку «ОК» для подтверждения тревоги.
  • Диалог увольняет и тревожит прекращение звонка -> finish(), вызванное методом onClick OK.

Сценарий 2: Проблемный Flow

Приложение справочная

  • Когда время для тревоги, диалог тревоги появляется на экране с сообщением и кнопкой OK и сигнал начинает кольцо.
  • Пользователь нажимает кнопку «ОК», чтобы отклонить его -> Тревога останавливается, и диалог отклоняется -> Пользователь переходит к ответам -> возобновляет приложение -> Тревожный диалог появляется снова, и начинает звонить звонок!

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

То, что я пробовал:

Кнопка ОК на экране тревоги вызывает послевкусие(), так что я ожидаю активности будет уничтожен нажатием OK. Кроме того, активность уведомления о тревоге отмечена как noHistory = "true" в манифесте, а Intent имеет флаг FLAG_ACTIVITY_CLEAR_TOP на нем, чтобы убедиться, что он очищен и не сохранен.

Запуск моей домашней активности при щелчке OK программно является одним из решений, которое работает, но я не хочу идти по этому маршруту, если нет работы. Который я уверен, что есть.

Всюду, где я вижу, это единственные предлагаемые решения, позволяющие удалить деятельность из задней панели, чтобы не появляться снова. Но они, похоже, не делают трюк для меня. Я уверен, что есть что-то элементарное, чего мне не хватает, но я не могу для жизни меня думать или находить, что это такое.

ответ

0

Я предполагаю, что вы использовали будильник android setRepeating(). вам нужно отменить будильник, когда пользователь нажимает кнопку OK.

PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0); 
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
alarmManager.cancel(sender); 
+0

Хорошо, поэтому вы были правы в том, что я не отменял тревогу.Но в этом случае то, что происходит, я нажимаю на OK, и когда я возобновляю свое приложение из своих откликов, вызывается Call Notification Dialog (который представляет собой Android-активность) onCreate. Здесь звучит мелодия звонка. Таким образом, это уже не сам будильник, а тот факт, что Dialog, который является активностью в этом случае, выбран Android, чтобы появиться при возобновлении, возможно, потому что это была последняя известная * активная активность в моем приложении , Значит, я чувствую, что избавляюсь от активности из-за задницы, трюк? – LeoNeo

+0

Как раз упомянуть, я сейчас отменяю сигнал тревоги нажатием OK. И я не уверен, как избавиться от активности из-под задней части. Поведение, которое я хочу, - это ... Диалоговое окно тревоги должно появляться, когда время заканчивается -> Пользователь щелкает Ok -> Отклонено диалоговое окно -> Пользователь идет к recents и возобновляет приложение -> Приложение показывает домашний экран так же, как если бы приложение было запущено свежее. – LeoNeo

+0

Вы использовали диалоговое окно предупреждения? если да, проверьте [эту страницу] (http://stackoverflow.com/questions/14853325/how-to-dismiss-alertdialog-in-android). –

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