2 回答

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超0個(gè)贊
當(dāng)應(yīng)用運(yùn)行起來后就會開啟一條線程,線程中會運(yùn)行一個(gè)任務(wù)棧,當(dāng)Activity實(shí)例創(chuàng)建后就會放入任務(wù)棧中。Activity啟動模式的設(shè)置在AndroidManifest.xml文件中,通過配置Activity的屬性android:launchMode=""設(shè)置。
1. Standared模式(默認(rèn))
我們平時(shí)直接創(chuàng)建的Activity都是這種模式的Activity,這種模式的Activity的特點(diǎn)是:只要你創(chuàng)建了Activity實(shí)例,一旦激活該Activity,則會向任務(wù)棧中加入新創(chuàng)建的實(shí)例,退出Activity則會在任務(wù)棧中銷毀該實(shí)例。
2. SingleTop模式
這種模式會考慮當(dāng)前要激活的Activity實(shí)例在任務(wù)棧中是否正處于棧頂,如果處于棧頂則無需重新創(chuàng)建新的實(shí)例,會重用已存在的實(shí)例,否則會在任務(wù)棧中創(chuàng)建新的實(shí)例。
3. SingleTask模式
如果任務(wù)棧中存在該模式的Activity實(shí)例,則把棧中該實(shí)例以上的Activity實(shí)例全部移除,調(diào)用該實(shí)例的newInstance()方法重用該Activity,使該實(shí)例處於棧頂位置,否則就重新創(chuàng)建一個(gè)新的Activity實(shí)例。
4. SingleInstance模式
當(dāng)該模式Activity實(shí)例在任務(wù)棧中創(chuàng)建后,只要該實(shí)例還在任務(wù)棧中,即只要激活的是該類型的Activity,都會通過調(diào)用實(shí)例的newInstance()方法重用該Activity,此時(shí)使用的都是同一個(gè)Activity實(shí)例,它都會處于任務(wù)棧的棧頂。此模式一般用于加載較慢的,比較耗性能且不需要每次都重新創(chuàng)建的Activity。

TA貢獻(xiàn)948條經(jīng)驗(yàn) 獲得超1109個(gè)贊
主要還是看需求,其實(shí)這四種啟動模式也挺簡單的,長時(shí)間不用沒印象了也沒事,需要用的時(shí)候百度一下就行了。
添加回答
舉報(bào)