前言
Activity生命周期是研究Android开发最基础的知识点之一,熟练掌握生命周期的特性可以在实际开发中避免踩坑。比如,一些UI的初始化和回收操作、框架库的注册于反注册(摧毁)、线程的启动和停止等。另外,本文在最后章节还会讲解系统回收造成的问题。本文就是针对各生命周期进行分析和解答,帮助大家完全掌握生命周期。
推荐阅读:
Android 源码分析Application的生命周期及共享数据详解
一、基本作用
Activity的生命周期共七个指示器:onCreate、onStart、onResume、onPause、onStop、onDestroy、onRestart。
如下图所示。
(1)onCreate() ,不可见状态
在Activity被创建时回调,第一个生命周期。我们一般在创建Activity时需要重写该方法做一些初始化的操作,如通过setContentView设置界面布局的资源,初始化所需要的组件信息等。
(2)onStart() ,可见状态
该方法回调表示Activity正在启动,此时Activity处于可见状态,只是还没有在前台显示,因此用户也无法交互。可以简单理解为Activity已显示却无法被用户看见。
(3)onResume() ,可见状态
此方法回调时,Activity已在在屏幕上显示UI并允许用户操作了。从流程图可见,当Activity停止后(onPause、onStop方法被调用),重新回到前台时也会调用onResume方法。可以在onResume方法中初始化一些资源,比如打开相机或开启动画。
(4)onPause() ,可见状态
此方法回调时,Activity正在停止(Paused形态),通常接下来 onStop() 会被回调 。但通过流程图可见,另一种情况是onPause() 执行后直接执行了onResume方法,这可能是用户点击Home键,让程序退回到主界面,程序在后台运行时又迅速地再回到到当前的Activity,此时o