一、Activity的加載模式有四種:
?standard: 標準模式,默認的加載模式,每次通過這種模式啟動目標Acitivity,都創建一個新的實例,并將該Activity添加到當前棧中。
singleTop: 與標準模式類似,只有當Activity位于Task頂時,系統不會重新創建目標Activity的示例,而是直接復用已有的Activity實例。
singleTask:? 如果要啟動的Activity不存在,系統創建Activity實例,并將它加入棧頂
如果將啟動的Activity存在,已經位于棧頂,此時與singleTop行為相同,如果要啟動的Activity存在,但不是位于棧頂,系統會使Activity上面所有的Activity出棧。
singleInstance:
如果要啟動的Activity不存在,系統會創建一個新的Task,再創建Activity實例,將它加入新Task的棧頂
如果要啟動的Activity存在,無論它在哪個應用程序中,系統都會把該Activity所在的Task轉至前臺。
二、A啟動B??A生命周期全過程
1.啟動A
? ?? ?Activity的初始化了,A第一步創建onCreate(): -------->成功!
? ???Activity被激活A,onStart? ?Activity顯示在屏幕上(): -------->成功!
? ???Activity被恢復A,onResume(): -------->成功!
2.在A中啟動B
? ?Activity被暫停A,Activity進入暫停狀態onPause(): -------->成功!
? ?B------------------>(): 創建!
? ?Activity被激活B,onStart? ?Activity顯示在屏幕上(): -------->成功!
? ?Activity被恢復B,onResume(): -------->成功!
? ?Activity被停止A,Activity進入停止狀態onStop(): -------->成功!
3.從B中返回A(按物理硬件返回鍵)
? ???Activity被暫停B,Activity進入暫停狀態onPause(): -------->成功!
? ???Activity被重啟A,Activity從停止狀態進入活動狀態onRestart(): -------->成功!
? ???Activity被激活A,onStart? ?Activity顯示在屏幕上(): -------->成功!
? ???Activity被恢復A,onResume(): -------->成功!
? ???Activity被停止B,Activity進入停止狀態onStop(): -------->成功!
? ???Activity的消亡了,B最后的生命!銷毀onDestroy(): -------->成功!
4.繼續返回
? ???Activity被暫停A,Activity進入暫停狀態onPause(): -------->成功!
? ???Activity被停止A,Activity進入停止狀態onStop(): -------->成功!
? ???Activity的消亡了,A最后的生命!銷毀onDestroy(): -------->成功!