首先我们来看一下google给我们Activity生命周期的图片。
从图片中我们可以看出关于Activity的生命周期有,onCreate,onStart,onResume,onRestart,onPause,onStop,onDestroy这7种生命周期。下面我们来了解他们的含义,这些生命周期的方法到底是什么时候执行的。
- onCreate()当Activity界面创建的时候来调用该方法。
- onStart() 当Activity界面用户可见的时候调用该方法。
- onRestart()当Activity没有被销毁,冲洗启动的时候,会先执行onRestart-->onStart-->onResume。一般不会用到。
- onResume()当Activity界面获取焦点的时候(界面按钮可以被点击,文本框可以输入内容)。
- onPause 当Activity界面失去焦点的时候(界面按钮不可以被点击,文本框不可以输入内容,但是界面,用户仍然能看见)。
- onStop() 当Activity界面用户不可见时。
- onDestroy 当Activity被销毁的时候。
可将android的生命周期分为三种
- 完整生命周期 oncreate--》onstart--》onresume--》onpause--》onstop--》ondestory
- 可视生命周期 onstart--》onresume--》onpause--》onstop
- 前台生命周期 onresume--》onpause 界面用户仍然可见,但是失去焦点
他们的使用场景
- 应用程序退出自动保存数据 ondestory oncreate
- 应用程序最小化 暂停的操作 onstop onstart 视频播放器
- 游戏的暂停和开始 前台生命周期
下面说一下android横竖屏切换的生命周期
android在进行横竖屏切换的时候会先将Activity销毁,然后在重新创建Activity。具体的执行生命周期方法是:
首先执行onpause--》onstop--》ondestory,然后oncreate--》onstart--》onresume
所以有两种方法来控制横竖屏的生命周期
- 首先第一种是直接在Menifest文件中设置Activity的android:screenOrientation="landscape"
- 第二种方法是在Menifest文件中设置Activity的android:configChanges="orientation|keyboardHidden|screenSize"这三个属性(在android 4.0之前不用配置screenSize这个属性也可以。但是在4.0以后必须配置screenSize才行)。