【问题标题】:Activity Lifecycle: startActivityForResult and press Back Button活动生命周期:startActivityForResult 并按返回按钮
【发布时间】:2010-07-15 07:58:42
【问题描述】:

是否存在Activity lifecycle 的方法,如果用户按下后退按钮会调用该方法,但如果调用 startActivityForResult() 方法则不会?我无法通过测试找到方法。

【问题讨论】:

    标签: java android lifecycle


    【解决方案1】:

    对不起,我只是没有看到解决方案,但这里是:

    通过调用startActivityForResult(),调用原activity的onPause()和onStop()方法。

    按下返回按钮时,会调用 onPause()、onStop() 和 onDestroy() 方法。

    所以不同的是 onDestroy() 方法。

    【讨论】:

      【解决方案2】:

      通常,它将是 onResume(),然后是 onActivityResult()。 然而,虽然不太可能,但调用活动可能会 在用户与另一个人一起工作时在某个时候被杀死 活动;当系统内存不足时会发生这种情况,此时 点它开始杀死东西,从“最不活跃的”开始。在 这种情况下,我想它会通过 onCreate(), onStart(), onResume(),最后是 onActivityResult()。 https://stackoverflow.com/a/2869832/323696

      我上面引用的答案是正确的,除了在被调用的活动完成之前调用活动何时被杀死或finished()的解释。 p>

      在这种情况下,当调用活动 Activity #1 在使用 startActivityForResult 调用另一个活动 Activity #2 后恢复时,Activity #1中的方法onActivityResult被称为BEFOREonResume

      了解您是否在 Activity #1 的 onResume 中实例化 SQLite 数据库对象很重要。如果是这样,当从 Activity #2 返回时,您还需要从 onActivityResult 中实例化对象。

      如需更多信息,请在http://developer.android.com/reference/android/app/Activity.html 阅读有关“startActivityForResult 方法”的信息。

      我还没有找到描述这个的生命周期图。从活动返回结果的步骤总是总结在生命周期图像中的文本描述中,说明“用户返回活动”或“活动进入前台” .'

      【讨论】:

        猜你喜欢
        • 2023-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-21
        相关资源
        最近更新 更多