Android的Activity有四種啟動模式(Launch Mode):standard、singleTop、singleTask和singleInstance。
standard模式:標準的Activity啟動模式,也是默認的啟動模式,如果一個activity已經存在task棧中,跳轉到該activity時,會再次創建一個新的實例壓入task棧中。例如棧中有a b c d,跳轉到d時,會新建一個d,此時task順序為a b c d d,如果再跳轉到b,那么此時順序為a b c d d b。
singleTop模式:棧頂模式,如果一個activity位于棧頂時,跳轉到該activity時,將不會創建新的實例。例如a b c d ,此時d位于棧頂,跳轉到d時,task棧中還是a b c d,而如果跳轉到b,不位于棧頂,則會再次創建b,順序為 a b c d b。
singleTask模式:單任務模式,任務棧中只會有一個該activity實例。例如a b c d,如果從d跳轉到b,那么棧順序為a b,
此時發生彈棧,c,d被彈出棧銷毀,b位于棧頂,b之上的activity都會被銷毀。
singleInstance:相當于新建一個任務棧。例如,棧1有a b c d ,如果從d跳轉到e,那么e位于新建的棧2中,此時棧1:a b c d,棧2:e , 再從e跳到e,棧2不會新建實例,依然只有一個e,如果從e跳轉到d,那么棧1的棧序為a b c d d ,因為d的模式為standard。
新聞熱點
疑難解答