在Android中,Activity啟動模式定義了一個Activity如何與任務堆棧中的其他Activity互動以及何時創(chuàng)建新的Activity實例。Android提供了四種主要的啟動模式,每種啟動模式都適合不同的使用場景,以滿足應用程序的需求。
以下是四種主要的Activity啟動模式:
1.standard(標準模式):這是默認的啟動模式。每次啟動一個新的Activity,都會創(chuàng)建一個新的實例,并將其放入任務堆棧的頂部。這意味著可以創(chuàng)建多個相同的Activity實例,并且它們可以隨意交互。這是最常見的啟動模式。
2.singleTop(單頂模式):如果要啟動的Activity已經(jīng)位于任務堆棧的頂部,系統(tǒng)不會創(chuàng)建新的實例,而是調(diào)用已存在的實例的onNewIntent()方法,從而實現(xiàn)單一實例的效果。如果Activity不在頂部,將會創(chuàng)建一個新的實例。
3.singleTask(單任務模式):在這種模式下,只能有一個實例存在于任務堆棧中,無論是否在同一應用程序內(nèi)。如果要啟動的Activity已經(jīng)存在,系統(tǒng)會將任務堆棧中位于該Activity之上的所有Activity移除,然后調(diào)用已存在的Activity的onNewIntent()方法。這對于應用程序的主要入口點Activity非常有用。
4.singleInstance(單實例模式):這是最特殊的啟動模式。在這種模式下,該Activity將獨自存在于一個新的任務堆棧中。這意味著只會有一個實例存在,而且不會與其他Activity實例共享任務堆棧。這通常用于具有全局性質(zhì)的單一任務,如來電界面。
要為Activity指定啟動模式,可以在清單文件(AndroidManifest.xml)中的<activity>元素中使用android:launchMode屬性。
例如:
<activity
android:name=".MyActivity"
android:launchMode="singleTop">
<!-- 其他Activity配置 -->
</activity>
不同的啟動模式可以用于滿足不同的應用程序需求,確保在選擇啟動模式時了解它們的行為和限制。