我有一个包含 4 个 Activity 的应用,顺序为 A->B->C->D 和一个由 A 启动的服务 S 应用程序启动时。现在在特定情况下,此服务会触发一个通知,该通知将再次启动 Activity C 我的应用程序以及 C 通常需要来自 B 的参数.此外,为了正常运行,C 需要使用 Activity A 中的静态变量。这就是设置。
现在发生的事情是,当服务 S 触发通知并且我点击它时, Activity A 和 B 会自动销毁导致强制关闭(因为我的 Activity C 取决于 A 中的静态变量)。为什么会这样。我已经使用 TaskStackBuilder
将 C 的 父 Activity (即 B)放到堆栈上,以便正常的返回行为将我带回 Activity B。
谁能告诉我这种行为的原因。我不想将我的 Activity C 作为一项相互依赖的任务来运行。我希望它与应用程序中已有的实例相同。 请帮助我理解这里的问题。
最佳答案
Activity 应该是独立的。
activity C 需要使用来自 activity A 的静态变量
是很危险的。尽管您按照 A->B->C->D 的顺序创建 Activity,但当您的应用程序处于后台并且用户返回您的应用程序时,Android 可能会销毁 A/B/C/D,仅重新创建 Activity D。我曾经遇到过与您相同的问题,
从通知启动 Activity 会破坏父 Activity
。这是因为我使用了 TaskStackBuilder。即使在我停止使用 TaskStackBuilder 之后,问题仍然存在。只有在我卸载应用程序后,它才能按预期工作。 检查 https://stackoverflow.com/a/28268331/1198666 的评论
关于android - 从通知启动 Activity 会破坏父 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14376168/