問題:
當前棧頂活動爲A,此時再啓動一個活動A,那麼活動A會經歷那些生命週期的變化?
答案:
對於這題,暫且稱已經啓動的活動A爲“1號A活動”,未啓動的稱爲“2號A活動”。
那麼此時經歷的生命週期分兩種情況的:
1、A活動的啓動模式爲默認,也即是“standard”
順序爲:1號A活動(onPause)→2號A活動(onCreate)...
2、A活動的啓動模式不爲默認,可以是:“singleTask”、“singleTop”、“singleInstance”
順序爲:1號A活動(onPause)→1號A活動(onNewIntent)→1號A活動(onResume)
可以看到,如果活動爲默認模式的話,會新建一個活動,而對於另外三種啓動模式則會調用當前活動的onNewIntent。
總結:
拋開表面看本質,對於默認的啓動模式是不會複用活動的,而對於另外三種模式都會複用當前的活動。