Android 可以通過在AndroidManifest.xml文件中 修改 activity 標簽下的android:launchMode 來設置相關的啟動模式,共有四種模式可以設置 standard,singleTop,singleTask,singleInstance 其中當不設置android:launchMode的時候默認是使用standard搂妻。
下面我們來了解一下相關參數(shù)值的意義辕棚,
standard
該參數(shù)標志著當打開一個activity的時候邓厕,不論任務棧中是否存在相關的activity扁瓢,都會新建一個activity添加到任務棧中。
singleTop
當打開一個activity的時候昧互,會先檢測當前任務棧的棧頂是否有該activity伟桅,如果有這復用該activity(不再執(zhí)行onCreate(),執(zhí)行onNewIntent()),如果沒有該activity則創(chuàng)建新的activity并加入任務棧。
singleTask
當打開一個activity的時候玖雁,會先檢測當前任務棧中是否有該activity盖腕,如果有則復用該activity赊堪,否則創(chuàng)建新的activity并添加到任務棧中。
singleInstance
當打開一個activity的時候哭廉,如果該activity不存在,則會創(chuàng)建一個新的任務棧并將該activity添加到新建的任務棧中遵绰,否則直接將該activity所在的任務棧置頂辽幌,并顯示該activity
Android 中除了在AndroidManifest.xml中修改啟動模式還可以通過在Java代碼中衛(wèi)intent設置flag來實現(xiàn)啟動模式的修改。
FLAG_ACTIVITY_NEW_TASK:
效果等同于在xml中設置singleTask
FLAG_ACTIVITY_SINGLE_TOP:
效果等同于在xml中設置singleTop