当接收到Firebase推送通知时,如果应用程序处于后台,Firebase会自动显示通知。 此通知中包含的挂起的Intent似乎总是包含FLAG_ACTIVITY_NEW_TASK标志,这会在单击通知时导致应用程序重新启动,即使应用程序在后台中已处于活动状态。Android Firebase推送通知在点击后重新启动应用程序
有没有什么办法来防止这种行为,而只是调用主Activity的onNewIntent(intent)呢?
当接收到Firebase推送通知时,如果应用程序处于后台,Firebase会自动显示通知。 此通知中包含的挂起的Intent似乎总是包含FLAG_ACTIVITY_NEW_TASK标志,这会在单击通知时导致应用程序重新启动,即使应用程序在后台中已处于活动状态。Android Firebase推送通知在点击后重新启动应用程序
有没有什么办法来防止这种行为,而只是调用主Activity的onNewIntent(intent)呢?
活动的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
希望这有助于。
嗨肖恩,你说的没错。我完全忘了设置launchMode。谢谢 :-) – Schm1