本次的学习是继Android安卓——Activity组件(1)和Android程序生命周期的学习之后展开的。
可以初步的使用Activity之后,明白了生命周期的存在才能更好的使用Activity组件。
Activity生命周期
组件生命周期
- 所有Android组件都具有自己的生命周期,是从组件建立到组件销毁的整个过程
- 在生命周期中,组件会在可见、不可见、活动、非活动等状态中不断变化
1、Activity生命周期
- Activity生命周期指Activity从启动到销毁的过程
- Activity表现为四种状态,分别是活动状态、暂停状态、停止状态和非活动状态
- 活动状态,Activity在用户界面中处于最上层,完全能不用户看到,能够与用户进行交互
- 暂停状态,Activity在界面上被部分遮挡,该Activity不再处于用户界面的最上层,且不能够与用户进行交互
- 停止状态,Activity在界面上完全不能被用户看到,也就是说这个Activity被其他Activity全部遮挡
- 非活动状态不在以上三种状态中的Activity则处于非活动状态
2、Activity的四种状态的变换关系图
3、Activity生命周期的事件回调函数
- 在类书写的事件回调函数
- 事件回调函数的讲解
- 状态保存/恢复的事件回调函数
4、Activity生命周期的分类
- Activity的生命周期可分为全生命周期、可视生命周期和活动生命周期
- 每种生命周期中包含不同的事件回调函数
(1)全生命周期
- 全生命周期是从Activity建立到销毁的全部过程,始于onCreate(),结束于onDestroy()
- 使用者通常在onCreate()中初始化Activity所能使用的全局资源和状态,并在onDestroy()中释放这些资源
- 在一些极端的情况下,Android系统会不调用onDestroy()函数,而直接终止进程
(2)可视生命周期
- 可视生命周期是Activity在界面上从可见到不可见的过程,开始于onStart(),结束于onStop()
- onStart()一般用来初始化或启动与更新界面相关的资源
- onStop()一般用来暂停或停止一切与更新用户界面相关的线程、计时器和服务
- onRestart()函数在onSart()前被调用,用来在Activity从不可见变为可见的过程中,进行一些特定的处理过程
- onStart()和onStop()会被多次调用
- onStart()和onStop()也经常被用来注册和注销BroadcastReceiver
(3)活动生命周期
- 活动生命周期是Activity在屏幕的最上层,并能够与用户交互的阶段,开始于onResume(),结束于onPause()
- 在Activity的状态变换过程中onResume()和onPause()经常被调用,因此这两个函数中应使用更为简单、高效的代码
- onPause()是第一个被标识为“可终止”的函数
- 在onPause()返回后,onStop()和onDestroy()随时能被Android系统终止
- onPause()常用来保存持久数据,如界面上的用户的输入信息等
(4)onPause()和onSaveInstanceState()的区别
这两个函数都可以用来保存界面的用户输入数据,他们的区别在于
- onPause()一般用于保存持久性数据,并将数据保存在存储设备上的文件系统或数据库系统中的
- onSaveInstanceState()主要用来保存动态的状态信息,信息一般保存在Bundle中
- Bundle是能够保存多种格式数据的对象
- 在onSaveInstanceState()保存在Bundle中的数据,系统在调用onRestoreInstanceState()和onCreate()时,会同样利用Bundle将数据传递给函数