啟動模式:
Standard 模式:Activity 可以有多個實例夜矗,每次啟動 Activity泛范,無論任務(wù)棧中是否已經(jīng)有這個Activity的實例,系統(tǒng)都會創(chuàng)建一個新的Activity實例
SingleTop模式:當(dāng)一個singleTop模式的Activity已經(jīng)位于任務(wù)棧的棧頂紊撕,再去啟動它時罢荡,不會再創(chuàng)建新的實例,如果不位于棧頂,就會創(chuàng)建新的實例
SingleTask模式:如果Activity已經(jīng)位于棧頂,系統(tǒng)不會創(chuàng)建新的Activity實例区赵,和singleTop模式一樣惭缰。但Activity已經(jīng)存在但不位于棧頂時,系統(tǒng)就會把該Activity移到棧頂笼才,并把它上面的activity出棧
SingleInstance模式:singleInstance 模式也是單例的从媚,但和singleTask不同,singleTask 只是任務(wù)棧內(nèi)單例患整,系統(tǒng)里是可以有多個singleTask Activity實例的拜效,而 singleInstance Activity 在整個系統(tǒng)里只有一個實例,啟動一singleInstanceActivity 時各谚,系統(tǒng)會創(chuàng)建一個新的任務(wù)棧紧憾,并且這個任務(wù)棧只有他一個Activity
生命周期:
onCreate onStart onResume onPause onStop onDestroy
兩個 Activity 跳轉(zhuǎn)的生命周期
1.啟動A
onCreate - onStart - ?onResume
2.在A中啟動B
ActivityA ?onPause
ActivityB ?onCreate
ActivityB ?onStart
ActivityB ?onResume
ActivityA ?onStop
3.從B中返回A(按物理硬件返回鍵)
ActivityB onPause
ActivityA onRestart
ActivityA onStart
ActivityA onResume
ActivityB onStop
ActivityB onDestroy
4.繼續(xù)返回
ActivityA onPause
ActivityA onStop
ActivityA onDestroy
notice:當(dāng)啟動的啟動Activity是dialog樣式的時候,從A啟動B不會執(zhí)行onstop()方法