finish()和android活动生命周期

finish()和android活动生命周期,android,Android,关于android活动生命周期,有些事情我还不知道,请不要让我从碎片开始 一旦调用了resume()之类的方法,如果调用了finish()或startActivity(newintent(..),它将继续执行到底 public void onResume(){ // do some stuff AAA .... startActivity(new Intent(..)); // do some more stuff BBBB

关于android活动生命周期,有些事情我还不知道,请不要让我从碎片开始

一旦调用了resume()之类的方法,如果调用了finish()或startActivity(newintent(..),它将继续执行到底

 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?

}
顺便说一句,这是一个类似于顶级面试的问题。在finish()之后还会调用onPause()吗?那么onStop()呢


最后,我想知道如何完成()不仅是MainActivity,还包括在应用程序下启动的所有此类活动,即由MainActivity启动的活动,从而返回到最初调用我的应用程序的应用程序

是将调用调用
finish()
后的代码

调用
finish()
时,将执行的下一个函数是
onPause()

如果要关闭后堆栈上的所有活动,请执行以下操作:

setResult(RESULT_CLOSE_ALL);
finish();

你不能自己试试吗?有什么问题吗?将日志放入这两种方法中并查看结果。我想了解它的原理。我可以这样做,但需要在不同版本的Android上测试。我想知道为什么?你也看到关于完成应用程序下所有活动的部分了吗?这就是我的目标,我刚刚意识到我对Android活动生命周期的了解还不够。例如,是的,我可以检查onStop()和onPause()是否仍然被调用,但我真的想知道为什么,或者我会忘记它。这些可能会帮助您。好的,我记得如果您在某个时候调用finish(),则有一些东西不会被调用。不确定,可能是在oncreate()中完成的。好的,我还看到:vv-Intent-Intent=new-Intent(ExitConfirmationActivity.this,FirstActivity.class);intent.setFlags(intent.FLAG\u ACTIVITY\u CLEAR\u TOP);星触觉(意向);是的,很好。这将启动一个新的活动,清除以前的活动。然后你只能调用
finish()
(没有
setResult(RESULT\u CLOSE\u ALL)
),因为如果你总是使用Intent.FLAG\u activity\u CLEAR\u TOP FLAG来创建新的活动,那么你的后堆栈上只有一个活动。但是,我想知道它是否也会清除调用我的应用程序的活动?这是什么意思?你是说你的主要活动吗?