【问题标题】:Call onCreate and onActivityResult?调用 onCreate 和 onActivityResult?
【发布时间】:2015-01-19 11:40:43
【问题描述】:

在我的应用程序中,

activity A 调用 activity B 并明确意图询问结果。

B 需要一段时间,而 A 可能会在此期间被破坏。

事实上,如果您离开 B(主屏幕、另一个任务...),B 本身甚至整个应用程序都可能被破坏,并在导航回我的应用程序的任务时被重新创建。

现在的问题是:当 B 最终完成它的工作并返回结果时,会发生什么?

我想要重新创建 A 并调用 onCreate()onActivityResult。但是我有一些怀疑,因为现在这是活动 A 的不同实例。阅读其他问题和答案,我注意到一些调用会发生在同一活动的不同实例中,并且会发生内存泄漏等。我希望在新创建的 A 实例(并且已销毁的实例已被清除)。

我想要的是实际发生的事情吗?如果没有,会发生什么,我应该怎么做?所有三种情况都很重要:只有 A 被破坏,A 和 B 被破坏;应用程序被销毁。

【问题讨论】:

    标签: android android-activity activity-lifecycle


    【解决方案1】:

    如果 Activity A 在 B 完成时被销毁,则会发生以下情况

    1. 将重新创建一个。
    2. B 将提供结果。

    这就是为什么必须通过带有整数请求代码的单个 Activity 回调返回结果的原因。

    我建议你阅读this

    【讨论】:

    • A 将被重新创建。如果您需要在A 中保留一些状态(例如,您已经启动了 B 并正在等待结果),那么您需要在 onSaveInstanceState()onRestoreInstanceState() 中保存并恢复此状态。
    猜你喜欢
    • 1970-01-01
    • 2012-07-15
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多