4

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

4

2 回答 2

6

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

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

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

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

于 2010-07-15T08:06:51.787 回答
6

通常,它将是 onResume(),然后是 onActivityResult()。然而,当用户使用其他活动时,调用活动可能会在某个时候被杀死,尽管不太可能;当系统内存不足时会发生这种情况,此时它开始从“最不活动的”开始杀死东西。在那种情况下,我想它会经历 onCreate()、onStart()、onResume(),最后是 onActivityResult()。 https://stackoverflow.com/a/2869832/323696

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

在这种情况下,当调用活动Activity #1在使用startActivityForResult调用另一个活动Activity #2后恢复时,Activity # 1中的方法onActivityResultonResume之前调用。

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

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

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

于 2012-02-29T21:20:08.307 回答