Activity作为Android程序中的四大组件之一,它和大部分的组件一样都是有自己的生命周期,而Activity的生命周期总的分为五种状态以及七个方法!
只大致讲 五种状态 和 七个方法
五种状态:
在Activity生命周期即从创建到销毁全过程中,分为五种状态分为启动、运行、暂停、停止和销毁。
需要注意的是:Activity活动时不会在 启动 和 销毁 这两种状态下停留下来有活动,因为这两种状态作为Activity活动的过渡状态。所以在Activity触发启动操作之后马上就会进入运行状态不会停留,而Activity触发到要销毁操作时马上就会被清理内存。
-
启动状态(你点下去之后):Activity的启动状态只是瞬间的事情,在不出意外的情况下,在Activity触发启动操作之后就会立即便会进入到运行状态。
-
运行状态(当前手机的屏幕是你运行的APP):Activity在这个状态下就是常见的与用户交互时的状态。它位于屏幕的最前端,是可以看见的,焦点也是停留在本状态的Activity。
-
暂停状态(当前APP中出现其他句柄的控件,并且一定需要点击才可以返回):通常来说,Activity对于用户来说仍处于可见状态,但是焦点不在此状态的Activity上,用户对此状态的Activity操作不会产生响应。比如,当Activity上突然跳出了一个对话框,而焦点就会从Activity转移到对话框上,所以Activity失去焦点但是对用来说仍是可见的。但是在不处理对话框的情况下无法对Activity进行操作。此时的Activity就是处于暂停状态。
-
停止状态(HOME键切换为其他应用):当用户操作从Activity01跳转到Activity02时,Activity02就会覆盖掉Activity01,而Activity01就会完全不可见,焦点也会从Activity01跳转到Activity02,它就是处于停止状态了,但是它的内存仍会保存在本Activity中还没有被清理。Activity02处于返回栈的栈顶,而Activity01就会往返回栈的栈底压。
-
销毁状态(清理应用的时候):当Activity处于销毁状态时,就会把Activity中的内存清空,并且把Activity清除返回栈。
七个方法:
在Activity的生命周期全过程中会依次执行七个方法,分为onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()、onRestart()方法。
-
onCreate()方法:在Activity创建的时候调用此方法,通常在此方法中做一些初始化操作。
-
onStart()方法:在Activity可见之前执行,在执行之后就是Activity进入可见的运行状态。
-
onResume()方法:在Activity获取得到焦点开始可以与用户进行交互的时候调用。
-
onPause()方法:当前Activity焦点被其他Activity夺取,或者说被覆盖、锁屏时调用。
-
onStop()方法:在Activity对用户不可见时调用。
-
onDestroy()方法:在Activity要销毁时调用。
-
onRestart()方法:在Activity从停止状态再次获取得到焦点启动时调用。
一个Activity的流程如下:
运行依次的执行顺序为onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDestroy()
当前APP中其他句柄出现的时候:在Activity执行onPause()方法会暂时失去焦点,当焦点重新回到Activity时就会重新执行onResume()方法,若是在进程被杀死的情况下就会重新执行onCreate()方法
切换APP应用的时候:在Activity执行onStop()方法时会失去焦点,但是用户操作回到本Activity时就会执行onRestart()方法使得本Activity回到最前端,若是在进程被杀死的情况下就会重新执行onCreate()方法
参考文章:https://blog.csdn.net/qq_41910568/article/details/84963169