Уведомление Android Firebase Push перезапускает приложение при нажатии

При получении push-уведомления Firebase, когда приложение находится в фоновом режиме, Firebase автоматически отображает уведомление.

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

Есть ли способ предотвратить такое поведение и вместо этого просто вызвать onNewIntent(intent) в основном действии?


person Schm1    schedule 11.11.2016    source источник
comment
Это может помочь: stackoverflow.com/a/12409215/2750743   -  person Klesun    schedule 20.01.2020


Ответы (2)


Атрибут launchMode действия влияет на то, как оно запускается.

видеть:

https://developer.android.com/guide/topics/manifest/activity-element.html#lmode

singleTop, singleTask или singleInstance следует использовать для предотвращения создания нового экземпляра действия намерением уведомления.

Флаг FLAG_ACTIVITY_NEW_TASK не влияет на создаваемое новое действие, но делает запущенное действие корнем новой задачи.

видеть:

https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_TASK

и:

https://developer.android.com/guide/components/tasks-and-back-stack.html

Надеюсь это поможет.

person Shawn    schedule 11.11.2016
comment
Привет, Шон, ты абсолютно прав. Я совсем забыл установить режим запуска. Спасибо :-) - person Schm1; 11.11.2016
comment
У меня была аналогичная проблема с react-native и react-native-splash-screen. Если кто-то еще испытывает это, попробуйте установить режим запуска действия экрана-заставки на singleInstance. У меня это сработало. - person Tiago Peres França; 22.08.2019

в AndroidManifest.xml установите для Activity launchMode значение singleTask, это должно исправить:

<activity
  ......
  android:launchMode="singleTask"
  >
person Duc Trung Mai    schedule 18.10.2020
comment
спасибо, так полезно объяснить, как реализовать исправление. - person ALEXANDER LOZANO; 27.04.2021