我遇到的问题是,如果用户点击启动器图标,我的应用程序将再次启动,即使它已在运行。我使用singleTaks
作为该活动,并且尽可能多的Stackoverflow Answers说 - >这应该可以解决问题 - 但事实并非如此。
<activity
android:name=".activities.ActivitySplash"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
正如您所见,我确实将launchMode
定义为singleTask
。我打开App。导航到屏幕X(我甚至可以保持在开始屏幕上,具有相同的效果),现在我按下主页按钮。当我现在再次按下启动器图标时,已经运行的应用程序不会弹出或正在恢复(按照您的意愿调用它)。相反,应用程序完全是新的。
如果singleTask
不起作用,我该如何防止这种行为?
答案 0 :(得分:1)
尝试使用SingleTop:
如果目标任务已有活动的现有实例 在它的堆栈顶部,该实例将接收新的意图(在 onNewIntent()调用);未创建新实例。其他 环境 - 例如,如果是现有的实例 &#34; singleTop&#34;活动在目标任务中,但不在顶部 堆栈,或者如果它位于堆栈的顶部,但不在目标任务中 - 将创建一个新实例并将其推送到堆栈中。