1.android 啟動模式主要分為以下四種:
1.standard,這是預設的啟動模式。
用這種啟動方式的話,每一次啟動乙個activity,都會重新建立乙個activity ,無論堆疊中是否存在相應的activity.每次建立過後的生命週期 會從oncreate 開始重新執行
2.singtop
這種啟動方式的話,首先會判斷啟動的activity是否存在與棧頂,如果存在於棧頂的話,這時候就會直接復用棧頂的activity.
這時候的生命週期,不會呼叫oncreate,和onstart,而會呼叫 onnewintent.
如果啟動的activity不存在於棧頂的話,就會重新建立activity,建立流程和standard相同
3.singtask.
singtask模式啟動activity的話,首先會判斷堆疊中是否存在例項,如果存在的話,會將,該例項上面的activity全部彈出堆疊,保證當前的例項存在於棧頂,這時候的生命週期依然是呼叫onnewintent.
如果堆疊中不存在的話,就會重新建立例項,生命週期和standard相同
4.singleinstance,會在新的任務棧中建立乙個新的例項,如果新的activity 繼續使用其他模式啟動activity都將存在於新的堆疊中。而不是存在久的堆疊
2.如何設定啟動模式:
啟動模式的設定主要通過:
intent.addflags(intent.flag_activity_new_task);
和設定配置檔案的lanchmode兩種方式來設定:
3.newintent。
當我們使用singtask或者singtop呼叫已經存在堆疊中,或者存在於棧頂的例項的時候,會呼叫onnewintent.但是,這時候雖然傳遞過來新的intent,但是我們使用getintent獲取的資料依然是老資料,所以我們在onnewintent中需要設定新的intent
android 啟動模式
啟動模式是通過在androidmanifest.xml中activity標籤中的launchmode設定的 android launchmode指示應該如何載入乙個activity.總共有四種啟動模式,他們一般配合activity啟動標記 flag activity 常量 一起使用來決定當載入乙個a...
Android啟動模式
android使用棧來管理activity。android的 啟動模式共4種分別為standard singletop singletask singleinstance。假如firstactivity在棧頂,此時如果繼續構建firstactivity,還會繼續構建firstactivity 如果f...
android啟動模式實踐
現在有乙個需求。從a跳到b,然後b跳到c,c再跳到a,看似很簡單的就可以實現,但是當簡單的跳轉後,發現棧中的activity順序從下到上一次是abca,當我最後跳到a時,返回鍵時,首先出來的是c,依次是b,然後還是a,實際中,這樣是不符合邏輯的,這裡我們就用到了activity的啟動模式。我們將a的...