我有一个包含多个 Activity 的应用程序...假设用户正在浏览 Activity 堆栈 A->B->C。然后按下主页按钮。现在,当用户单击小部件时,我只想将我的应用程序的现有/当前实例带到前台。我不想要应用程序的新实例。我想让 Activity C 回到前台。
我尝试将 launchMode 设置为 "singleTask"| “singleInstance”
但这并没有解决我想要的要求,因为它清除了当前实例并创建了一个具有 Activity A 的新实例。
有什么解决办法吗?
非常感谢!
最佳答案
使用“singleInstance
”并不是一个好主意(有很多原因)。
这是一个更好的方法 - 来自您的小部件 Intent 处理程序:
Intent yourActivity = new Intent(context, YourActivity.class);
yourActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(yourActivity);
你不需要添加CLEAR_TOP
来召回 Activity C,但如果你想带上A或B,你需要它。
我发帖只是因为在大约 10 多个类似的帖子中,没有人真正指出正确的发帖方式。
http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP - 最后一段。
关于Android 从 Widget 启动现有的应用程序实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11183191/