當接收到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