Android - открыть или перезапустить приложение после нажатия push-уведомления с использованием действий флага
Я использую push-уведомления в Android. Когда я получаю push-уведомление, я хочу открыть приложение, если он все еще запущен, иначе он должен открыть новый экземпляр.
Я использую
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_SINGLE_TOP |
Intent.FLAG_ACTIVITY_NEW_TASK);
Но когда я получаю push-уведомление сейчас, и я нажимаю на него, ничего не происходит.
Как я могу достичь этого, используя flagIntents?
Ответы
Ответ 1
Вам нужно установить флаги Intent на Intent
. Вы указали им в вызове, чтобы получить PendingIntent
. Попробуйте следующее:
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_SINGLE_TOP |
Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
notificationIntent, 0);
Ответ 2
задайте следующие параметры в файле Android Mainfest
android:noHistory="true"
android:launchMode = "singleTop"
Ответ 3
В моем случае работающее приложение перезапускалось каждый раз, когда я нажимал на push-уведомление. Но я не хочу перезапускать приложение.
В PendingIntent
у меня есть намерение для необходимой Деятельности1, которая называется Деятельностью2. Ошибка была в этих строках:
val intent = Intent(context, Activity2::class.java)
// Remove this line:
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
context.startActivity(intent)