一直對activity的onNewIntent有些困惑,開始時只是知道在activity被重新restart時會進入,後來又發現還不只是這種情況,下面是經過調試後的結論
第一種情況:activity launchMode爲singleTask或者singleInstance
1、activitya start activityb
2、activityb start activitya
在第二步被執行後,activitya就會順序執行 onNewIntent onRestart onStart onResume
第二種情況:activity launchMode爲singleTop singleTask singleInstance
1、start activitya
2、activitya start activitya
在第二步被執行後,activitya就會順序執行onPause onNewIntent onResume
第一種情況其實是真正的activity被restart,第二種情況是activity位於棧頂時被再次start就會進入onNewIntent
其實理解的簡單一點,無論什麼模式,只有activity是同一個實例的情況下,intent發生了變化,就會進入onNewIntent中,這個方法的作用也是讓你來對舊的intent進行保存,對新的intent進行對應的處理。