2013-10-13 4 views
10

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

Я пробовал:

setContentIntent(PendingIntent.getActivity(context, 0, new Intent(context, MainActivity.class), Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)) 

Но в новом Android 4.3 приложения принес на фронт, но его также начать новый экземпляр MainActivity, и я не хочу этого.

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

ответ

4

Вы никогда не устанавливали Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT. Этот флаг установлен Android, когда он переносит активность на передний план. Вы не устанавливаете его.

Существует несколько способов сделать то, что вы хотите. Проверьте это answer

+0

@ greg7gkb Что? В документации четко указано: «Этот флаг обычно не задается кодом приложения, а установлен для вас системой, как описано в документации launchMode для режима singleTask». _ Поскольку он настроен для вас, какова цель установки Это? Вы не можете контролировать или влиять на какое-либо поведение, установив этот флаг так, почему вы его установили? –

+0

Я знаю, что он старый, но ничего не работало для меня, и я хочу поделиться тем, что работает - https://stackoverflow.com/a/47329722/2410260 –

0

Добавить "Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP" вместо "Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT"

Разъяснение here

Надеется, что это помогает.

+1

Это не поможет, и это неправильное использование этого флага. 'Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP' полезен только в том случае, если вы начинаете свою деятельность в рамках своей собственной задачи. Поскольку запущенная деятельность находится в другой задаче (поскольку она запущена из панели уведомлений), этот флаг не действует. –

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