最近在项目中debug时看到Activity中各种调用finish,onCreate中、onResume中、onPause中、onStop中,真是各种调用各种乱。
之前说过,在onResume中调用了finish方法,是会依次执行onPause、onStop、onDestroy方法的。那么,要是在别的周期函数中执行了finish方法呢?
1.在onCreate方法中调用finish
在onCreate中,调用finish方法,不会显示出此Activity的界面,因为调用finish方法后,立马就会跑onDestroy。即跑的生命周期为:onCreate、onDestroy。
2.在onStart方法中调用finish
在onStart方法中,调用finish,会出现闪退,因为调用finish方法后,立马就会跑onStop方法。即跑的生命周期为:onCreate、onStart、onStop、onDestroy。
3.在onResume方法中调用finish
在onStart方法中,调用finish,会出现闪退,因为调用finish方法后,立马就会跑onStop方法。即跑的生命周期为:onCreate、onStart、onResume、onPause、onStop、onDestroy。
4.在onPause、onStop、onDestroy中调用finish
在onPause、onStop、onDestroy中,调用finish,显示正常。在退出时,正常退出。跑的生命周期为:onCreate、onStart、onResume、onPause、onStop、onDestroy。