Activity Lifecycle:startActivityForResult并按Back Button

4 java lifecycle android

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

Rof*_*ion 6

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

通过调用startActivityForResult(),可以调用原始活动的onPause()和onStop()方法.

按下后退按钮时,将调用onPause(),onStop()和onDestroy()方法.

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


Bry*_*yan 6

通常,它将是onResume(),然后是onActivityResult()。但是,尽管不太可能,但是在用户处理其他活动时,调用活动可能会在某个时刻被杀死。当系统内存不足时会发生这种情况,这时它会从“最不活动”状态开始杀死东西。在那种情况下,我想它会经历onCreate(),onStart(),onResume(),最后是onActivityResult()。 /sf/answers/200888271/

我上面引述的答案是正确的,除了当为解释调用活动被杀害,或成品()时,之前被称为活性完成。

在这种情况下,当主叫活动,活动#1中,具有所谓的另一活性,之后恢复活动#2,使用startActivityForResult,该方法onActivityResult活动#1被称为 的onResume

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

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

我还没有找到描述此情况的生命周期图。从活动中返回结果的步骤总是总结在LifeCycle图像的文本描述中,指出“ 用户返回活动 ”或“ 活动进入前台”。'