Android 从 Widget 启动现有的应用程序实例

标签 android android-activity widget instance launchmode

我有一个包含多个 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/

相关文章:

java - ANDROID:mysql JDBC 中的用户登录认证

android - 您如何做到这一点,以便在流程结束时,正在进行的通知振动并播放声音?

android - 横向布局Android上的键盘不成比例

android - 将消息从 Activity 发送到服务 - Android

java - 在每个 Activity 上显示选项卡小部件

ios - 如何从 TodayViewController 按钮单击导航到包含的应用程序的特定 View Controller

android - 标记文件夹并获取它们的路径

android - 我可以自动发送短信吗(无需用户批准)

firebase - flutter - NoSuchMethodError : The method '[]' was called on null

r - 如何使标签和盒子在Shiny::numericInput中彼此对齐?