【发布时间】:2014-04-07 18:38:51
【问题描述】:
所以我有一个定义在 AndroidManifest.xml 中的 Activity A,定义如下:
<activity
android:name=".activity.A"
android:screenOrientation="landscape"
android:windowSoftInputMode="stateAlwaysHidden"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
此活动启动一个欢迎屏幕,我们将其称为活动 B。
如果您启动应用程序,将显示欢迎屏幕,然后一旦用户完成它,Activity A 就会返回。
我遇到的问题是,当我从欢迎屏幕按下“主页”按钮时,我会按预期返回主屏幕。现在,当我重新单击应用程序图标时,应用程序将不会启动。相反,我的活动 A 和 B 都被破坏了。如果我再次单击该图标,则应用程序将按预期重新启动。
现在,如果我在欢迎屏幕上并按下返回箭头并重新单击应用程序图标,它会按预期启动应用程序。我不必推两次。
不幸的是,我必须使用 launchMode="singleTask",因为它是与另一个团队集成的必要条件。我已经多次阅读 Android API 的 Tasks 和 Back Stacks。任何指针或建议将不胜感激。
我遇到了a blog,表示同时使用 singleTask 和 intent-filters 存在一个未记录的错误,但没有找到任何官方文档。
谢谢
编辑 像这样启动 Activity B:
Intent intent = new Intent(context, B.class);
startActivityForResult(intent, CONST_VAR);
【问题讨论】:
-
请包含您用于启动活动 B 的代码。
-
嗨,Paul,我编辑了问题并添加了活动 B 的启动方式。谢谢