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