如果用户按下后退按钮,是否有调用Activity lifecycle的方法,但是如果调用方法startActivityForResult()则没有?我通过测试找不到方法。
答案 0 :(得分:5)
对不起,我刚刚没有看到解决方案,但现在是:
通过调用startActivityForResult(),可以调用原始活动的onPause()和onStop()方法。
按下后退按钮时,会调用onPause(),onStop()和onDestroy()方法。
所以区别在于onDestroy()方法。
答案 1 :(得分:5)
通常,它将是onResume(),后跟onActivityResult()。 但是,调用活动可能会,但不太可能 当用户与另一个用户合作时,他们已经被杀死了 活动;当系统内存不足时会发生这种情况 指出它开始杀死东西,从“最不活跃”开始。在 那种情况,我想它会通过onCreate(),onStart(), onResume()然后最后是onActivityResult()。 https://stackoverflow.com/a/2869832/323696
上面引用的答案是正确的,除了在被调用的活动完成之前解释调用活动被杀死或者finish()的时间。
在这种情况下,当呼叫活动活动#1 在使用 startActivityForResult 调用另一个活动活动#2 后恢复,活动#1 中的方法 onActivityResult 被称为 BEFORE onResume 。
了解您是否在活动#1 中的onResume中实例化SQLite数据库对象非常重要。如果是这样,当从活动#2 返回时,您还需要从 onActivityResult 中实例化对象。
有关详情,请参阅http://developer.android.com/reference/android/app/Activity.html上的“ startActivityForResult方法 ”。
我找不到描绘这个的LifeCycle Diagram。从活动返回结果的步骤总是在LifeCycle图像的文本描述中总结,说明“用户返回活动”或“活动到达前台