singleTask活动未正确加载

时间:2016-06-30 13:06:20

标签: android android-activity

我有一项活动' A'在Manifest中定义如下:

<activity
    android:name=".A"
    android:launchMode="singleTask"
    android:screenOrientation="portrait">

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

</activity>

当我启动我的APP时,该活动始终从一开始就加载。它不会从我的上一个活动开始。 当我删除android:launchMode时,它会按照我的预期运行。

2 个答案:

答案 0 :(得分:2)

由于您设置了android:launchMode="singleTask",因此活动A将始终是您活动的根。

来自DOCS

  

相比之下,“singleTask”和“singleInstance”活动只能开始一项任务。它们始终位于活动堆栈的根部。此外,设备一次只能保存一个活动实例 - 只有一个这样的任务。

默认模式为standard。因此,当您移除android:launchMode="singleTask"时,您的APP会返回standard启动模式。

这就是为什么如果你的应用程序总是启动活动A.

答案 1 :(得分:0)

如果您想在启动时启动其他活动,请在包含 LAUNCHER 的xml名称属性中替换

<activity
    android:name=".ActivityB"
    android:launchMode="singleTask"
    android:screenOrientation="portrait"
  >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

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

</activity>

活动B是替代活动。