</br>
什么是Activity的啟動模式
Activity的啟動模式是指為一個Activity添加標記怀挠,告訴系統(tǒng)應該怎樣啟動這個Activity
</br>
1. 標準模式(stantard)
1)作用:每次通過Intent打開一個Activity,不管棧中是否已有相同的Activity,都會創(chuàng)建一個新的Activity,并放入棧頂。
2)Activity默認的啟動模式
</br>
2. 棧頂復用模式(singleTop)
1)作用:每次通過Intent打開一個啟動模式是singleTop的Activity,系統(tǒng)會先判斷棧頂中是否有該Activity端姚,如果有,就不會創(chuàng)建新的Activity挤悉,如果棧頂沒有渐裸,即使棧中的其他位置上有相同的Activity,系統(tǒng)也會創(chuàng)建一個新的Activity装悲。
2)當棧頂元素是相同的Activity時昏鹃,再通過Intent打開同一個Activity不會創(chuàng)建新的對象,但是會調(diào)用onNewIntent(Intent) 方法诀诊。
</br>
3. 棧內(nèi)復用模式(singleTask)
1)作用:如果棧中已經(jīng)有該Activity的實例了洞渤,不管它在棧中什么位置,都會重用該Activity實例属瓣。如果棧中不存在該實例载迄,則會創(chuàng)建一個新的Activity實例放入棧中。
ClearTop:如果它不在棧頂抡蛙,就會先把它上面的Activity實例先銷毀掉护昧,只到它成為棧頂元素。
ABCED ? 啟動C ? ABC
2)當重用Activity時粗截,也會調(diào)用 onNewIntent(Intent) 方法惋耙。
</br>
4. 單實例模式(singleInstance)
1)作用:系統(tǒng)會創(chuàng)建出一個新的棧,在這個新的棧中創(chuàng)建該Activity實例,并讓多個應用共享該棧中的該Activity實例绽榛。
2)全局單例:一旦該模式的Activity的實例存在于某個棧中湿酸,任何應用再激活該Activity時,都會重用該棧中的實例灭美。
其效果相當于多個應用程序共享一個應用推溃,不管誰激活該Activity,都會進入同一個應用中冲粤。
可以說整個手機內(nèi)只有這一個實例美莫。
例如一個應用中打開了百度地圖,然后在另一個應用中梯捕,也打開百度地圖,此時窝撵,它會直接進入到剛才的地圖畫面傀顾,按返回時返回到自己的界面。
</br>