Activity4種啟動模式

2021-07-13 08:19:14 字數 1389 閱讀 8427

standad模式是activity預設的啟動方式,在不進行顯示指定的情況下,所有activity都會以這種方式啟動。

intent intent = new intent(this,firstactivity.class);

startactivity(intent);

以這種模式啟動的activity 每次都會建立乙個新的例項

![standard模式](

以這種模式啟動的activity已經在棧頂的話,就不會在建立新的例項。

修改配置檔案的啟動方式androidmanifest.xml

android:allowbackup="true"

android:icon="@drawable/ic_launcher"

android:name=".mainactivity"

android:launchmode = "singletop"

![singletop模式](

但是如果當前的activity如果未能處在棧頂的話,當啟動當前activity的時候還是會建立新的例項

以這種模式啟動的activity可以解決多個例項的問題,在整個程式中只會存在乙個例項,系統會先檢查返回棧中是否存在該例項,如果有就直接使用,會將其他acitivty都清楚棧。沒有就建立

修改配置檔案的啟動方式androidmanifest.xml

android:allowbackup="true"

android:icon="@drawable/ic_launcher"

android:name=".mainactivity"

android:launchmode = "singletask"

![singletask模式](

這種模式啟動的activity會建立乙個新的返回棧來管理這個活動,這樣做的意義是,如果當前活動被其他程式呼叫訪問。我們想讓其他的程式共享當前活動的例項的話,使用前面3種肯定是辦不到的,因為每個程式都有自己的返回棧,同乙個activity在不同的返回棧入棧肯定是建立了不同的例項。使用singlelnstance會建立乙個單獨的返回棧,不管那個程式訪問,都會共用同乙個返回棧,也就解決了共享例項的問題。

android:allowbackup="true"

android:icon="@drawable/ic_launcher"

android:name=".mainactivity"

android:launchmode = "singlelnstance"

![firstactivity](

![secondactivity](

![thirdactivity](

![例項物件](

Activity的4種啟動模式

1.standard模式 standard是activity預設的啟動模式,在不指定activity啟動模式的情況下,所有activity使用的都是standard模式。因此,前面是用的activity都是standard啟動模式。在standard模式下,每當啟動乙個新的activity,它就會進...

Activity四種啟動模式

launchmode在多個activity跳轉的過程中扮演著重要的角色,它可以決定是否生成新的activity例項,是否重用已存在的activity例項,是否和其他activity例項公用乙個task裡。這裡簡單介紹一下task的概念,task是乙個具有棧結構的物件,乙個task可以管理多個acti...

Activity四種啟動模式

activity的啟動模式可以通過androidmanifest.xml檔案中的元素的屬性來指定,一共有4中模式 android name activitymain android launchmode singletask 1 standard 2 singletop 3 singletask 4...