雖然是一個很基礎的知識點但還是想記錄一下,以盡可能簡單的語言。
android啟動模式launchMode有四種:
standard
標準模式,也是系統默認模式。每次啟動activity都會創建一個新的實例,無論這個實例是否存在。
singleTop
棧頂復用模式。當即將要啟動的activity已經位于任務棧頂,則此activity不會重新創建,它的onCreat(),onStart()方法也不會被調用,這時候會回調的方法是onNewIntent(),我們可以在這個方法中做一些初始化的操作。如果我們要啟動的activity沒有在任務棧頂,那么系統會為我們建一個新的實例,這時候就和standard模式創建activity一樣了。
singleTask
單實例模式,也叫棧內復用模式。此模式下,某activity在整個任務棧中只能存在一個實例,即使多次啟動,也不會重復創建實例,而是onNewIntent()方法被調用。此模式有一個clearTop的效果,比如當前棧中實例的順序是ABCD,如果B是singleTask模式,這時候啟動B,則系統會把B移動到棧頂顯示,同時銷毀CD,只剩AB。
singInstance
單實例模式。它具有singleTask所有特性,而且有過之無不及,這種模式的activity只能單獨位于一個任務棧中。