如果用户按下后退按钮,是否会调用Activity 生命周期的方法,但如果调用 startActivityForResult() 方法则不会?我无法通过测试找到方法。
2 回答
对不起,我只是没有看到解决方案,但这里是:
通过调用startActivityForResult(),调用了原activity的onPause()和onStop()方法。
当按下返回按钮时,会调用 onPause()、onStop() 和 onDestroy() 方法。
所以不同的是 onDestroy() 方法。
通常,它将是 onResume(),然后是 onActivityResult()。然而,当用户使用其他活动时,调用活动可能会在某个时候被杀死,尽管不太可能;当系统内存不足时会发生这种情况,此时它开始从“最不活动的”开始杀死东西。在那种情况下,我想它会经历 onCreate()、onStart()、onResume(),最后是 onActivityResult()。 https://stackoverflow.com/a/2869832/323696
我上面引用的答案是正确的,除了在被调用活动完成之前调用活动何时被终止或完成()的解释。
在这种情况下,当调用活动Activity #1在使用startActivityForResult调用另一个活动Activity #2后恢复时,Activity # 1中的方法onActivityResult在onResume之前调用。
了解您是否在Activity #1的 onResume 中实例化 SQLite 数据库对象很重要。如果是这样,当从Activity #2返回时,您还需要从onActivityResult中实例化对象。
有关更多信息,请阅读http://developer.android.com/reference/android/app/Activity.html上的“ startActivityForResult 方法” 。
我还没有找到描述这一点的生命周期图。从活动返回结果的步骤总是总结在生命周期图像中的文本描述中,说明“用户返回活动”或“活动进入前台”。'