我有一个Android应用程序,有2个活动,A和B. 然后,当我开始活动A时,转到活动B(按钮),按回家并点击启动器中的应用程序,我打开它并希望活动B,但它是活动A.
为什么?
在活动A的清单中,我有这个
<activity android:configChanges="locale|orientation|keyboardHidden|screenSize"
android:label="@string/app_name" android:launchMode="singleInstance" android:name="MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
在活动B中,launchMode:singleTask,这在意图过滤器中:
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
答案 0 :(得分:2)
If we do not add launch mode for activities in manifest file,the default implementation is as below:
1.Activity A --> Activity B
2.Pressed Home button.
3.launch application again from launcher
Result:
Activity B will be seen. (If application is not killed).
Which behavior you are expecting.
如果您在清单文件中声明如下的ActivityA和B:
<activity android:name=".ActivityA"
android:label="@string/app_name"
android:launchMode="singleTask"
>
<activity android:name=".ActivityA"
android:label="@string/app_name"
android:launchMode="singleTask"
>
步骤: 1.Activity A - &gt;活动B. 2.按下主页按钮。 3.再次从启动器启动应用程序
结果:将看到活动A.
原因:
如果我们添加android:launchMode =&#34; singleTask&#34;对于活动,将在新任务中创建活动。如果再次启动应用程序,将删除现有活动backstack,并再次在新任务中创建活动。 这就是为什么再次启动应用程序时无法看到活动B的原因。
如果需要进一步澄清,请添加您的评论。
答案 1 :(得分:0)
尝试 机器人:launchMode =&#34; singleInstance&#34;在清单