設(shè)置了"singleTask"啟動(dòng)模式的Activity的特點(diǎn):
1. 設(shè)置了"singleTask"啟動(dòng)模式的Activity,它在啟動(dòng)的時(shí)候,會(huì)先在系統(tǒng)中查找屬性值affinity等于它的屬性值taskAffinity的任務(wù)存在;如果存在這樣的任務(wù),它就會(huì)在這個(gè)任務(wù)中啟動(dòng),否則就會(huì)在新任務(wù)中啟動(dòng)。因此,如果我們想要設(shè)置了"singleTask"啟動(dòng)模式的Activity在新的任務(wù)中啟動(dòng),就要為它設(shè)置一個(gè)獨(dú)立的taskAffinity屬性值。
2. 如果設(shè)置了"singleTask"啟動(dòng)模式的Activity不是在新的任務(wù)中啟動(dòng)時(shí),它會(huì)在已有的任務(wù)中查看是否已經(jīng)存在相應(yīng)的Activity實(shí)例,如果存在,就會(huì)把位于這個(gè)Activity實(shí)例上面的Activity全部結(jié)束掉,即最終這個(gè)Activity實(shí)例會(huì)位于任務(wù)的堆棧頂端中。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="shy.luo.task" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MainActivity" android:label="@string/app_name" android:taskAffinity="shy.luo.task.main.activity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SubActivity" android:label="@string/sub_activity" android:launchMode="singleTask" android:taskAffinity="shy.luo.task.sub.activity"> <intent-filter> <action android:name="shy.luo.task.subactivity"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> </application> </manifest>新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注