android 啟動模式和newIntent

2021-09-06 17:14:39 字數 945 閱讀 5029

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的...