Android生命周期


Android中Activity的生命周期分两种情况: 1、典型情况下的生命周期,在用户参与的情况下,Activity所经过的生命周期 2、异常情况下的生命周期,指Activity被系统回收或者由于当前设备的Configuration发生改变从而导致的Activity被销毁重建。

典型情况下的生命周期:
1)onCreate:表示Activity正在被创建。 2)onRestart:表示Activity正在重新启动,当当前Activity从不可见重新变成可见状态时onRestart就会被调用。 3)onStart:表示Activity正在被启动,此时Activity已经可见,但是还位于后台没有出现在前台,还无法和用户交互。 4)onResume:表示Activity已经可见,并且出现在前台可以与用户交互。 5)onPause:表示Activity正在停止。 6)onStop:表示Activity即将停止。 7)onDestroy:表示Activity即将被销毁。
注意: 1)onStart、onStop与onResume、onPause的区别 onStart、onStop是从Activity是否可见这个角度来回调的。 onResume、onPause是从Activity是否位于前台这个角度来回调的。 2)从一个Activity(A)启动另一个Activity的周期(B) A:onPause B:onCreate B:onStart B:onResume A:onStop 3)在onPause方法中不能做耗时操作,否则启动另一个Activity时会用很长时间。



异常情况下的生命周期:

情况一:资源相关的系统配置信息发生改变时导致Activity被杀死并重新创建。 流程: 系统在发生异常情况下,会调用 onSaveInstanceState方法来保存当前Activity的状态,当Activity被系统重新创建时会把销毁前保存的Bundle对象作为参数传给onCreate方法和 onRestoreInstanceState。
注: onSaveInstanceState方法的触发时机: 1) 当用户按下HOME键时。 2) 长按HOME键,选择运行其他的程序时。 3) 按下电源按键(关闭屏幕显示)时。 4) 从activityA中启动一个新的activity时。 5) 屏幕方向切换时,例如从竖屏切换到横屏时。 总而言之,onSaveInstanceState的调用遵循一个重要原则,即当系统“未经你许可”时销毁了你的activity,则onSaveInstanceState会被系统调用,这是系统的责任,因为它必须要提供一个机会让你保存你的数据(当然你不保存那就随便你了)。
onRestoreInstanceState方法的触发时机:只有当Activity出现异常被销毁时且需要重新创建时才会调用。 onSaveInstanceState方法和onRestoreInstanceState方法“不一定”是成对的被调用的 情况二:资源内存不足导致低优先级的Activity被杀死 Activity优先级的划分: 1、前台Activity:正在和用户交互的Activity,优先级最高 2、可见但非前台Activity:比如Activity中弹出了一个对话框,导致Activity可见但是位于后台无法和用户直接交互。 3、后台Activity:已经被暂停的Activity,比如执行了onStop方法,优先级最低












更多相关文章

  1. ActivityThread 源码笔记(1)
  2. Android程序入口ActivityThread和Android应用程序启动流程详解
  3. 修改Android系统属性SystemProperties.set("sys.powerctl", "shu
  4. 横屏和竖屏切换界面不刷新
  5. Android(安卓)Activity生命周期
  6. Android(安卓)Activity生命周期管理
  7. Android应用程序启动过程源代码分析
  8. Android生命周期和启动模式
  9. No 90 · android如何调用dotnet编写的webservice (摘抄)

随机推荐

  1. Android圆形进度条控件-CircleSeekBar
  2. Android采用KSOAP2访问webservice
  3. 几行代码看程序员的水平——Android文件
  4. Ubuntu下进行Android开发的相关配置
  5. 更换linux/android的启动logo
  6. android 数据库 SQLiteOpenHelper和Conte
  7. Android透明界面与ListView动态刷新
  8. Android调试工具之ADB
  9. android ContentResolver详解
  10. 对TabHost、TabWidget的理解分析