Activity生命周期(包括横竖屏时特殊情况)

1.Activity的生命周期

指一个Activity从创建到销毁的过程,期间可能经历多个状态的变化,每次状态的变化都会触发相应的回调方法。

Activity生命周期分为四个阶段:

  • 运行状态:可见,并且可操作
    onCreate–onStart—onResume
    onRestart–onStart—onResume
  • 暂停状态:可见,但是不可操作
    onPause
  • 停止状态:不可见,并且也不可操作
    onStop
  • 销毁状态:该Activity结束,或Activity所在的Dalivik进程被结束
    onDestory

  • onCreate():Activity在实例化过程被调用,进行创建工作,只会调用一次,一般创建界面,做一些数据的初始化工作。

  • onStart():Activity启动过程的回调函数。
  • onResume():恢复Activity时被回调,onStart()方法后一定会回调该方法,可操作。
  • onPause():暂停Activity时被回调(Activity失去操作焦点,但可见),系统会停止动画等消耗CPU的事情。应该在这里保存你的一些数据,因为这个时候你的程序的优先级降低,有可能被系统收回。在这里保存的数据,应该在onResume里读出来。
  • onStop():停止Activity时被回调(Activity失去操作焦点,不可见)。
  • onDestory():销毁Activity时被回调,该方法只会被调用一次(回收资源)这是Activity被kill前最后一个被调用方法了。
  • onRestart():这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。

2.横竖屏切换时使其生命周期不会发生改变

  • 当进行横竖屏切换的时候,activity的生命周期会变成onPause–>onSaveInstanceState–>onStop–>onDestroy–>oncreate–>onStart–>onResume,可以看出,activity重新执行了一次,oncreate到onResume,
    这样子的话之前的数据就会被丢失掉,这时候就要涉及到onSaveInstanceState保存数据了,然后在onCreate方法里面通过Bundle获取之前保存的数据。
  • AndroidManifest.xml中设置android:configChanges=”orientation|screenSize|keyboardHidden”

3.有时候我们必须要屏幕横竖屏都可以自由切换的时候,这个时候就要准备两套方案了,方法步骤:

  • 在res包下新建一个文件夹:layout-land,在这个文件夹里面需要写你想要横竖屏切换的页面的布局的名字,注意,和layout中的布局名字要相同,如:activity_main,那个在layout-land中的xml布局文件也必须要写成这个名字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值