一:Standard的啟動模式
Standard是默認的模式每開始一個activity,就會在棧中加一個activity,相同的也會加,
所以加多少個,就要按多少次返回鍵才能回到最初的界面
二:singleTop的啟動模式
1.清單配置:
<activity
android:name="com.itcode.taskstack.SecondActivity"
android:label="@string/_second"
android:launchMode="singleTop">
</activity>
Singletop:如果任務棧的棧頂已經存在這個activity的實例,
不會創建新的activity,而是利用舊的activity實例
調用 舊的activity的onNewIntent()方法
2.作用:
避免一個糟糕的用戶體驗,如果這個界面已經被打開且在任務棧的棧頂,就不會重復開啟了
三:Singletask的啟動模式:
1.Androidfest配置:
<activity
android:name="com.itcode.taskstack.SecondActivity"
android:label="@string/_second"
android:launchMode="singleTask">
</activity>
2.作用:
singletask的啟動模式:在任務棧里面只允許一個實例存在,假如02是singletask,
棧里是:01 02 01 03 若此時開啟02,則會復用這個已經存在的activity,并且把當前activity上面其他的activity從任務棧里清空!
3.應用場景:
瀏覽器:底層使用的是webkit c 內核,初始化一次需要申請很多的內存資源,占用cpu時間
所以使用singletask,保證在任務棧里只會有一個實例存在
四:singleInstance的啟動模式(相當于實例):
1.Androidfest的配置:
<activity
android:name="com.itcode.taskstack.SecondActivity"
android:label="@string/_second"
android:launchMode="singleInstance">
</activity>
2.特點:
singleInstance的啟動模式更加極端,
開啟新的activity,會給自己創建一個單獨的任務棧
3.應用場景:
在整個手機操作系統里面只會有一個該activity的實例存在,
所以多個應用程序共享這個activity的實例,有線程安全問題!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。