onCreat方法中假如有三个方法,第一个方法执行完后调用finish,后面的方法会不会执行

onCreat方法中假如有三个方法,第一个方法执行完后调用finish,后面的方法会不会执行,为什么?

后面的方法会执行的,调用finish之后不会立即调用onDestroy方法,而是执行完finish()后面的代码后才会调用onDestory方法。

如果是在activity里面的话,直接finish就把整个界面都结束掉了,后面的方法执行不到了。程序执行顺序都是由上到下的,从MainActivity开始直到你退出应用。

后面的方法还是会执行的,我们来从Activity的启动和退出的流程来分析这个问题,我们知道activity的启动和退出都是ActivityManagerService去通知ActivityThread去处理的。在ActivityThread中有一个H handler,这个handler就是用来处理activity的启动、退出等等消息的的。调用用finish方法相当于发出了一个退出消息。我们知道当一个消息没有处理完之后,是不会去处理下一个消息的。在启动消息的处理里面,会回调activity的onCreat、 onResume、 onStart方法,在这些方法没有处理完之前,是不是去处理这个退出消息的。启动退出消息只是为了方便我才这么说的,实际上H handler里定义了多种消息,具体内容可以在ActivityThread类里面找到。

finish页面使用内存被销毁,不会执行后面的方法,可以自行demo测试