Activity生命周期概述

Android开发过程中与Activity打交道的机会太多了,Activity的一个重要属性就是生命周期。以前开发过程中总是对生命周期不求甚解,今天就好好的讨论一下Activity的生命周期。Activity的生命周期其实可以用一张图进行概述,这张图也是Google官方给我们提供的下图就是著名的Activity生命周期图:
Android Activity生命周期详解_第1张图片
只要我们对这张图有个深刻的认识也就掌握了Activity的生命周期了。下面我将通过各个场景来详细的论述一下Activity的生命周期。

Activity生命周期状态

Activity的生命周期总共有七种状态分别为onCreate、onStart、onResume、onPause、onStop、onRestart和onDestroy。其中的onCreate和onDestroy在整个生命周期内只调用一次分别对应着Activity的初次创建和销毁。下面就详细的介绍下在各种场景下的Activity的生命周期情况,Activity的状态无外乎一下的几种:启动–>进入后台–>回到前台–>销毁。下面着重的介绍几种常见的场景。

1 初次创建Activity

Android Activity生命周期详解_第2张图片
这里我们通过打印Log的方式来展示各个状态对应的生命周期状态。初次点击一个APP进入Activity时生命周期如上图所示分别为:onCreate–>onStart–onResume。其中onCreate顾名思义就是创建Activity时候调用的方法,该方法只调用一次当调用该方法时Activity并没有显示出来只是开始渲染Activity的布局,之后开始onStart方法这时候Activity才开始显示出来,直到调用onResume方法Activity才真正的显示出来即我们看到的Activity。这就是Activity初次启动对应的状态。

2 当回到主界面时

这里写图片描述
当我们在一个Activity的界面时此时我们点击home键回到主界面时候,这时候Activity将进入后台。此时对应的状态分别为onPause和onStop方法。

3 当从主界面时候回到Activity时

Android Activity生命周期详解_第3张图片
当我们从主界面回到Activity时,则依次调用onRestart、onStart和onResume方法。正如上面所说的onStart方法和onResume方法总是成对出现的。

4 当在当前Activity熄屏时

Android Activity生命周期详解_第4张图片
当在当前Activity界面时点击电源键熄灭屏幕时则将依次调用onPause和onStop方法。此时Activity处于暂停的状态和停止的状态。

4 当点亮屏幕回到当前的Activity时

这里写图片描述
当Activity从熄屏的状态下回到当前的Activity时则此时将依次调用onRestar–>onStart–>onResume方法,这个状态和从主界面回到当前Activity类似。

5 当旋转屏幕时

Android Activity生命周期详解_第5张图片
当我们旋转屏幕的时候将会依次调用onPause–>onStop–>onDestroy–>onCreate–>onStart–>onResume方法。这个生命周期状态很重要这也就是为什么我们在旋转屏幕时候Activity的一些状态会丢失了,就是因为在旋转Activity的时候进行了onDestroy销毁当前Activity,这时候我们需要特殊的处理去保存Activity的状态如在onSaveInstance方法中保存状态,还有一种简单方法就是在manifest文件中更改属性添加 android:configChanges=”orientation|keyboardHidden”即可。

6 当销毁Activity时

这个状态没有什么好解释的就是当销毁当前Activity时调用的方法且该方法只调用一次。

Activity生命周期总结

相应通过上面的分析大家对Activity的生命周期有了更深刻的认识,其实Activity的生命周期无外乎就是上述的几种状态的来回转换,相信大家多实践几次都会对此有深刻的认识。

更多相关文章

  1. Android CheckBox中设置padding无效问题解决方法
  2. Android屏幕旋转时Activity的生命周期
  3. Android设备Root检测方法
  4. Android Studio中创建Selector文件的方法
  5. Android App开发基础篇—四大组件之Activity生命周期和启动模式
  6. blcr加速android启动速度遇到的问题及解决方法
  7. Android 公共库的建立方法
  8. 浅谈Android中的 Fragment、生命周期回调方法 以及使用
  9. android的intent使用方法 .

随机推荐

  1. 【转载】 MySQL数据库“十宗罪”(十大经典
  2. MySQL之mysqlcheck、check、optimize和an
  3. 【MySQL】有关登录连接的几个参数(max_con
  4. MySQL中日期转换 FROM_UNIXTIME和UNIX_TI
  5. 一段蛋疼的代码:超不清视频播放器
  6. 【EMCC】 12.1.0.5 OEM server agent 安
  7. MySQL InnoDB 共享表空间和独立表空间
  8. MySQL覆盖索引(Covering Index)
  9. MySQL字符集和校对规则(Collation)
  10. 关于表格(合肥市南门小学五(三)班课程表)