Android四種加載模式

standard :系統的默認模式,一次跳轉即會生成一個新的實例。假設有一個activity命名爲Act1,執行語句:startActivity(newIntent(Act1.this, Act1.class));後Act1將跳轉到另外一個Act1,也就是現在的棧裏面有 Act1的兩個實例。按返回鍵後你會發現仍然是在Act1(第一個)裏面

singleTop:singleTop跟standard模式比較類似。唯一的區別就是,當跳轉的對象是位於棧頂的activity(應該可以理解爲用戶眼前所看到的activity)時,程序將不會生成一個新的activity實例,而是直接跳到現存於棧頂的那個activity實例。拿上面的例子來說,當Act1 singleTop 模式時,執行跳轉後棧裏面依舊只有一個實例,如果現在按返回鍵程序將直接退出。

singleTask: singleTask模式和後面的singleInstance模式都是隻創建一個實例的。在這種模式下,無論跳轉的對象是不是位於棧頂的activity,程序都不會生成一個新的實例(當然前提是棧裏面已經有這個實例)。這種模式相當有用,在以後的多activity開發中,經常會因爲跳轉的關係導致同個頁面生成多個實例,這個在用戶體驗上始終有點不好,而如果你將對應的activity聲明爲singleTask模式,這種問題將不復存在。

singleInstance: 設置爲 singleInstance 模式的 activity 將獨佔一個task,獨佔一個task的activity與其說是activity,倒不如說是一個應用,這個應用與其他activity是獨立的,它有自己的上下文activity。

設置方式,在Manifest文件中需要設置的ancivity標籤中添加android:launchMode=”“即可。

發佈了35 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章