【发布时间】:2010-07-15 07:58:42
【问题描述】:
是否存在Activity lifecycle 的方法,如果用户按下后退按钮会调用该方法,但如果调用 startActivityForResult() 方法则不会?我无法通过测试找到方法。
【问题讨论】:
是否存在Activity lifecycle 的方法,如果用户按下后退按钮会调用该方法,但如果调用 startActivityForResult() 方法则不会?我无法通过测试找到方法。
【问题讨论】:
对不起,我只是没有看到解决方案,但这里是:
通过调用startActivityForResult(),调用原activity的onPause()和onStop()方法。
按下返回按钮时,会调用 onPause()、onStop() 和 onDestroy() 方法。
所以不同的是 onDestroy() 方法。
【讨论】:
通常,它将是 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 方法”的信息。
我还没有找到描述这个的生命周期图。从活动返回结果的步骤总是总结在生命周期图像中的文本描述中,说明“用户返回活动”或“活动进入前台” .'
【讨论】: