【发布时间】:2015-10-15 15:40:48
【问题描述】:
关于 android Activity 生命周期有一些我不知道的事情,不要让我开始讨论 Fragments!:
一旦调用了像 resume() 这样的方法,如果调用了 finish() 或 startActivity(new Intent(..)),它将继续执行到最后。
public void onResume(){
// do some stuff AAA
....
startActivity(new Intent(..));
// do some more stuff BBBB
// Do I get this far?
setResult(RESULT_CODE, intent);
finish();
// How about here? Do I get this far?
// how do I make sure that everything started in this app up to now is finished off as well? ie that activities started up by this activity are also finished?
}
顺便说一句,这类似于顶级面试问题。在完成()之后还会调用 onPause()吗? onStop() 怎么样?
最后,我想知道如何finish() 不仅是MainActivity,而是在应用程序下启动的所有此类活动,即由MainActivivity 启动,从而回到最初调用我的应用程序的应用程序。
【问题讨论】:
-
不能自己试试吗?有什么问题吗?将日志放入这两种方法并查看结果。
-
我想了解它的理论。我可以这样做,但是需要在不同版本的 Android 等上进行测试。我想了解为什么?您还看到关于完成应用程序下所有活动的部分吗?这就是我的目标,我刚刚意识到我对 Android 活动生命周期的了解还不够。例如,是的,我可以检查 onStop() 和 onPause() 是否仍然被调用,但我真的想知道为什么,否则我会忘记它。
标签: android