我有一项活动' 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
时,它会按照我的预期运行。
答案 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是替代活动。