理解android:launchMode

5

我对Android中不同的活动启动模式感到非常困惑。我知道这与活动堆栈有关,但我对此也不是很清楚。希望能简要说明每种启动模式及其简单用例。


我认为以下是一个很好的起点:http://www.intridea.com/blog/2011/6/16/android-understanding-activity-launchmode - Manu Zi
2个回答

2
SingleTask and SingleInstance activities can only begin a task. They are always at the 
root of the activity stack. Moreover, the device can hold only one instance of the 
activity at a time — only one such task.

"

更多细节

"

<application
    android:name=".MyApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity android:name=".Standard">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".SingleTop"
        android:launchMode="singleTop" />

    <activity
        android:name=".SingleTask"
        android:launchMode="singleTask"
        android:taskAffinity="" />

    <activity
        android:name=".SingleInstance"
        android:launchMode="singleInstance" />      <!--//TODO launchMode -->

</application>

<uses-permission android:name="android.permission.GET_TASKS" />

示例演示


0

Android 4种启动模式: 1.标准
2.单一顶部 3.单一任务 4.单一实例

  1. 标准 -> 当从Activity A到B时,每次都会创建新对象,并且按返回键多次返回。

  2. 单一顶部 -> 当用户从Activity A到B并再次进入Activity B时,不会创建新的实例或调用onCreate方法。但是会调用 onNewIntent 方法。

  3. 单一任务 -> 当用户从Activity A到B再到Activity C并再次进入Activity B时,不会创建新的实例或调用onCreate方法。但是会调用 onNewIntent 方法。并且当在Activity B上按下返回键时,会回到Activity A。 Activity C将从中间移除。

  4. 单一实例 -> Activity Stack B 是 A 到 B 到 C。在启动B活动后,A->B->C->D — Job #1 另外一个B —— Job #2(这里,B将被分配到单独的任务中)

如果您继续这样做并添加 E 和 B,堆栈将如下所示:作业 #1— A -> C -> D -> E。 5. 列表项

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接