finish()方法是告诉Android系统结束该Activity,它会调用onDestroy()方法。
finish()方法里可能会调用所在Activity的其他方法,如OnPause()、onStop()等,在不同的代码位置执行finish()方法会调用不同的方法组合。示例如下:
- Calling finish() in onCreate(): onCreate() -> onDestroy()
- Calling finish() in onStart() : onCreate() -> onStart() -> onStop() -> onDestroy()
- Calling finish() in onResume(): onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDestroy()
看起来销毁像对称的,你调用了OnCreate()后,finish()方法里就要调用与OnCreate()对应的OnDestroy()方法,其他以此类推。
若仅调用onDestroy()方法,这个Activity实例实际上还存在,若重启APP,进入该Activity会快一些,但若系统需要回收内存,则该进程将会被销毁。