android - 从通知启动 Activity 会破坏父 Activity

标签 android android-activity android-service android-notifications

我有一个包含 4 个 Activity 的应用,顺序为 A->B->C->D 和一个由 A 启动的服务 S 应用程序启动时。现在在特定情况下,此服务会触发一个通知,该通知将再次启动 Activity C 我的应用程序以及 C 通常需要来自 B 的参数.此外,为了正常运行,C 需要使用 Activity A 中的静态变量。这就是设置。

现在发生的事情是,当服务 S 触发通知并且我点击它时, Activity AB 会自动销毁导致强制关闭(因为我的 Activity C 取决于 A 中的静态变量)。为什么会这样。我已经使用 TaskStackBuilderC 的 父 Activity (即 B)放到堆栈上,以便正常的返回行为将我带回 Activity B

谁能告诉我这种行为的原因。我不想将我的 Activity C 作为一项相互依赖的任务来运行。我希望它与应用程序中已有的实例相同。 请帮助我理解这里的问题。

最佳答案

  1. Activity 应该是独立的。 activity C 需要使用来自 activity A 的静态变量 是很危险的。尽管您按照 A->B->C->D 的顺序创建 Activity,但当您的应用程序处于后台并且用户返回您的应用程序时,Android 可能会销毁 A/B/C/D,仅重新创建 Activity D。

  2. 我曾经遇到过与您相同的问题,从通知启动 Activity 会破坏父 Activity 。这是因为我使用了 TaskStackBuilder。即使在我停止使用 TaskStackBuilder 之后,问题仍然存在。只有在我卸载应用程序后,它才能按预期工作。 检查 https://stackoverflow.com/a/28268331/1198666 的评论

关于android - 从通知启动 Activity 会破坏父 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14376168/

相关文章:

android - 刷新 Eclipse 中的可绘制对象列表?

java - 如何在android中的父子 Activity 之间进行通信

android - 通过从 onDestoy 方法调用 startService 来保持服务持久化

android - 如何向联系人添加新字段?

安卓:扩展 RelativeLayout

android - 如何在 Android Activity 中实现 'Remember me' 函数?

android - 在销毁时从未调用过服务

android - 每分钟更新一次的电池高效 android 小部件

java - 请帮助以非线性方式偏移坐标

java - 切换到新的 Activity/应用页面时应用崩溃