Android活動中的啓動模式

啓動模式分爲四種

1:standard:

在不進行顯示指定的情況下,所有活動都會默認使用這種啓動模式。

使用這種啓動模式,系統不在乎活動是否應經存在返回棧中每次啓用都會創建一個新的實例。

2:singleTop:

使用singleTop模式啓動活動A時,當該活動存在於返回棧頂時,不會創建活動A的實例,但是當活動A或是A的實例不在返回棧頂時,系統還是會創建活動A的實例。

3:singleTask:

使用singleTask模式啓動活動A時,會判斷返回棧中有沒有活動A的實例,如果存在活動A的實例,則會把活動A頂到棧頂,活動A上方的所有活動實例將會被頂出棧外。如果沒有會在棧頂創建活動A的實例。

4:singleInstance:

使用用singleInstance模式啓動活動,會啓動一個新的返回棧來管理這個活動,這麼做的主要意義是,假設程序A的活動A是允許其他程序調用的,假設現在程序B想調用程序A中的活動A,就必須的得在程序B的返回棧中創建活動A的實例,顯然這是不可能的,因爲每個程序都會有自己得返回棧,同一活動在不同返回棧入棧時都必須創建新的實例。不可能在活動B的返回棧中創建活動A,因爲B程序里根本不可能有(程序A)活動A,如果就算碰巧有和活動A一樣的活動,也只能說是外觀相同,但是執行時所用到的數據不可能相同,畢竟就像微信的數據庫不可能給新浪微博用是一個道理,所以需要使用singleIntance創建一個只有活動A的返回棧(此時活動A裏包含的數據都是來自程序A),當B想調用活動A時,用的是這個的返回棧,解決的共享問題。


啓動模式選擇:

可以再AndroidManifest。xml中通過<activity>標籤指定android:launchMode屬性來選擇啓動模式。來指定啓動模式

(以上藍色代碼一律是本人自己腦補的理解,入果當你看到這篇博客,認爲觀點不對請無視!!謝謝!!)

本人屬於自學,現在正在看的是郭霖前輩的<第一行代碼 Android>,所寫的有些會涉及書中的知識點,望見諒。如果有需要可以入手一本,個人覺得受益無窮!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章