问题标题可能不够清楚。它解决了应用程序在资源不足的情况下被Android“杀死”后,将结果从子活动传递给父活动的问题,然后在用户返回该应用程序时自动恢复。
假设活动 A 使用 调用活动startActivityForResult()
B。当应用程序执行上下文在 B 中时,应用程序进入后台并在一段时间后被系统卸载。稍后,用户切换回应用程序,并且活动 B 恢复没有问题。唯一的问题是 A 目前在 Android 的后台堆栈中不存在,并且当用户关闭 B(finish()
伴随适当的setResult()
调用)时,A 不会收到结果。A不是onActivityResult()
事件,而是onCreate()
从启动链接收和其他事件。
所以问题是如何在“杀死”状态后恢复的应用程序中的活动之间传递结果?
更新:
尽管@fedepaol 提供了一个指向谷歌群组的链接,有人在其中写了onActivityResult
应该在有问题的情况下调用的链接,但我无法让它工作。我还应该注意,谷歌群组中该问题的 OP 也没有解决问题。我也在 SO 上发现了一个类似的问题 - onActivityResult 在进程被杀死后不被调用- 也没有解决方案。
我仔细检查了我的代码,不明白为什么它不起作用。在正常情况下,会调用被覆盖的方法。如果后台的activity一一还原,则不会。