1. 程式人生 > >Android中的四種啟動模式

Android中的四種啟動模式

  • standard

標準模式,每次啟用activity都會建立該activity,並放入任務棧中。

  • singleTop

如果在任務的棧頂正好存在該Activity的例項,就重用該例項,否則就會建立新的例項並放入棧頂(即使棧中已經存在該Activity例項,此時相當於standard模式)

  • singleTask

如果在棧中已經存在該Activity的例項,就重用該例項(會呼叫例項的onNewIntent())。重用時,會讓該例項回到棧頂,此時就會移除在它上面的例項。如果棧中不存在該Activity例項,將會建立新的例項放入棧中。

  • singleInstance

在一個新棧中建立該Activity,並讓多個應用共享該棧中該Activity例項。一旦該模式的Activity存在於某個棧中,當應用再啟用該Activity時,都會重用該棧中的例項,其效果相當於多個應用共享一個應用,不管誰啟用該Activity都會進入同一個應用。場景:從通知列表中啟動某個應用。

注:當為singleInstance模式啟動時,單擊返回鍵時activity的釋放順序有所不同,如:FirstActivity 設定為singleInstance模式,啟動順序為:Main1->First->Main2->First->Main3,會有如下兩個棧:

當點選返回鍵時,Activity的釋放順序如下:先釋放task1中的三個Activity,然後再釋放task2中的FirstActivity。