2015-11-14 3 views
1

Мое приложение и деятельность находятся в моем списке последних приложений, когда я получаю уведомление. Когда я нажимаю на уведомление, я хочу, чтобы цель уведомления была соблюдена. В моем случае я хочу перезапустить действие (перебор) и передать новое намерение: так, закончить, а затем воссоздать. Я читал о таких тегов, как FLAG_ACTIVITY_NEW_TASK и FLAG_ACTIVITY_SINGLE_TOP, но я их не понимаю достаточно, чтобы знать, как заставить «закончить затем повторно create` моей деятельности. И, о, активность в вопросе MainActivity.Как воссоздать активность последних приложений, когда приложение запущено из уведомления

фрагмент внутри GcmListenerService использует

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

для отправки уведомлений намерения

Альтернативно

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

ответ

0

Флаг намерения FLAG_ACTIVITY_CLEAR_TOP должен вызывать желаемое поведение. documentation for Tasks and Back Stack говорит, что это в разделе для Использования Intent Флагов:

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

documentation for FLAG_ACTIVITY_CLEAR_TOP описывает такое же поведение более подробно.

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