Activity的launchmode為默認值。
1.桌面圖標啟動Ap,按Back鍵返回:
onCreate()
onStart()
onResume()
【Back鍵按下】
onPause()
onStop()
onDestroy()
2.長按Home按鍵,從最近程序中點擊圖標進入:
與情況1相同。
3.啟動Ap,按Home按鍵,然後再點擊圖標進入:
onCreate()
onStart()
onResume()
【Home鍵按下】
onPause()
onStop()
【再次進入Ap】
onRestart()
onStart()
onResume()
4.新Activity全部覆蓋,back退出新Activity:
A1 oncreate()
A1 onstart()
A1 onResume()
【啟動A2】
A1 onPause()
A2 onCreate()
A2 onStart()
A2 onResume()
A1 onStop()
【從A2 Back】
A2 onPause()
A1 onActivityResult()
A1 onRestart()
A1 onStart()
A1 onResume()
A2 onStop()
A2 onDestroy()
【從A1 Back】
A1 onPause()
A1 onStop()
A1 onDestroy()
5.新Activity部分覆蓋,back退出新Activity
A1 onCreate()
A1 onStart()
A1 onResume()
【啟動A2】
A1 onPause()
A2 onCreate()
A2 onStart()
A2 onResume()
【從A2Back】
A2 onPause()
A1 onActivityResult()
A1 onResume()
A2 onStop()
A2 onDestroy()
6.普通Dialog部分覆蓋:
同AlertDialog
7.AlertDialog部分覆蓋:
onCreate()
onStart()
onResume()
【顯示AlertDialog】
【關閉AlertDilaog】
在AlertDialog出現以及消失的過程中,沒有觸發任何onXXX事件。
8.來電覆蓋:
等同新Activity全覆蓋
9.桌面控件intent啟動:
9.1.目標Activity未啟動:
等同桌面圖標直接啟動,會直接啟動一個新Activity。
9.2.目標Activity已經啟動並且在最上層
如果目標Activity是由桌面控件觸發的,那麼等同情況3,不會創建新Activity。
如果目標Activity是由Launcher圖標啟動的,那麼會不停的創建新Activity。
9.3.目標Activity已經啟動但是不在最上層
如果目標Activity是由桌面控件啟動的,那麼不會創建新Activity,但也不會把目標Activity提到最上層。
如果目標Activity是由Launcher圖標啟動的,那麼會不停的創建新Activity。