所以我有一个定义在 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。
如果您启动应用程序,将显示欢迎屏幕,然后一旦用户完成它,活动 A 就会返回。
我遇到的问题是,当我从欢迎屏幕按下“主页”按钮时,我会按预期返回主屏幕。现在,当我重新单击应用程序图标时,应用程序将不会启动。相反,我的活动 A 和 B 都被破坏了。如果我再次单击该图标,则应用程序将按预期重新启动。
现在,如果我在欢迎屏幕上并按下后退箭头并重新单击应用程序图标,它会按预期启动应用程序。我不必推两次。
不幸的是,我必须使用 launchMode="singleTask" 因为它是与另一个团队集成的要求。我已经多次阅读 Android API 的 Tasks 和 Back Stacks。任何指针或建议将不胜感激。
我遇到了一个博客,表明同时使用 singleTask 和意图过滤器存在一个未记录的错误,但没有找到任何官方文档。
谢谢
像这样编辑启动活动 B:
Intent intent = new Intent(context, B.class);
startActivityForResult(intent, CONST_VAR);