Android Firebase 推送通知在单击时重新启动应用程序
Android Firebase Push notification restarts app when clicked
收到 Firebase 推送通知时,当应用程序处于后台时,Firebase 会自动显示通知。
这个通知中包含的待定 Intent 似乎总是包含 FLAG_ACTIVITY_NEW_TASK
标志,这将导致 App 在单击通知时重新启动,即使 App 已经在后台运行。
有什么方法可以防止这种行为,而只需调用主 Activity 上的 onNewIntent(intent)
即可?
activity 的 launchMode
属性会影响 activity 的启动方式。
参见:
https://developer.android.com/guide/topics/manifest/activity-element.html#lmode
应使用 singleTop
、singleTask
或 singleInstance
来防止通知意图创建新的 activity 实例。
标志 FLAG_ACTIVITY_NEW_TASK
不会影响正在创建的新 activity,但会使启动的 activity 成为新任务的根。
参见:
https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_TASK
和:
https://developer.android.com/guide/components/tasks-and-back-stack.html
希望这对您有所帮助。
在 AndroidManifest.xml
中将 Activity launchMode
设置为 singleTask
应该可以解决这个问题:
<activity
......
android:launchMode="singleTask"
>
收到 Firebase 推送通知时,当应用程序处于后台时,Firebase 会自动显示通知。
这个通知中包含的待定 Intent 似乎总是包含 FLAG_ACTIVITY_NEW_TASK
标志,这将导致 App 在单击通知时重新启动,即使 App 已经在后台运行。
有什么方法可以防止这种行为,而只需调用主 Activity 上的 onNewIntent(intent)
即可?
activity 的 launchMode
属性会影响 activity 的启动方式。
参见:
https://developer.android.com/guide/topics/manifest/activity-element.html#lmode
应使用singleTop
、singleTask
或 singleInstance
来防止通知意图创建新的 activity 实例。
标志 FLAG_ACTIVITY_NEW_TASK
不会影响正在创建的新 activity,但会使启动的 activity 成为新任务的根。
参见:
https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_TASK
和:
https://developer.android.com/guide/components/tasks-and-back-stack.html
希望这对您有所帮助。
在 AndroidManifest.xml
中将 Activity launchMode
设置为 singleTask
应该可以解决这个问题:
<activity
......
android:launchMode="singleTask"
>