Перезапустите приложение при получении уведомления - PullRequest
4 голосов
/ 05 сентября 2011

Я разработал приложение, которое имеет функцию получения уведомлений с сервера.

Проблема в том, что, когда я нажимаю на полученное уведомление, оно открывает новый экземпляр самого моего приложения .

Это нормально, , если мое приложение не на переднем плане , но если оно есть, и я пытаюсь открыть уведомление, создается новый экземпляр моего приложения и, таким образом, перекрываетсяранее открытый экземпляр приложения.

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

Как переопределить событие нажатия уведомления?

Ответы [ 4 ]

5 голосов
/ 05 сентября 2011

вам нужно сделать магию с IntentFlags.попробуйте добавить различные флаги в ваше намерение.

notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP| Intent.FLAG_ACTIVITY_NEW_TASK);
1 голос
/ 05 сентября 2011

Вы можете добавить флаг в намерении, устанавливая намерение в ожидании намерения, например:

0 голосов
/ 17 июня 2015
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);

Таким образом вы очистите свой последний экземпляр вместе со всеми действиями и запустите новый экземпляр приложения.

0 голосов
/ 05 сентября 2011

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

...