Android之Activity在横竖屏切换时的生命周期

先来张经典图镇楼...

1.onWindowFocusChanged()的调用时机

创建Activity的调用顺序
锁定屏幕
解锁屏幕
该方法在Activity窗口获得或失去焦点时被调用,例如创建时首次呈现在用户面前;当前Activity被其他Activity覆盖;当前Activity转到其他Activity或按Home键回到主屏,自身退居后台;用户退出当前Activity。
注:对于该方法,适合在onCreate中无法获取试图组件大小的时候使用。
 

2.onSaveInstanceState

(1)在Activity被覆盖或退居后台之后,系统资源不足将其杀死,此方法会被调用;
(2)在用户改变屏幕方向时,此方法会被调用,此时比较适合保存临时数据。
(3)在当前Activity跳转到其他Activity或者按Home键回到主屏,自身退居后台时,此方法会被调用。
 

3.onRestoreInstanceState,一般重写以便获取在onSaveInstanceState保存的临时数据。

(1)在Activity被覆盖或退居后台之后,系统资源不足将其杀死,然后用户又回到此Activity,此方法会被调用;
(2)在用户改变屏幕方向时,重建的过程中,此方法会被调用。
 

提高切换横竖屏的效率

为避免切换横竖屏时,Activity的销毁重建过程,需要在AndroidMainfest.xml中对OrientationActivity对应的<activity>配置android:configChanges="orientation",测试结果如下,
注:在android 4.0以上还须要加上screenSize,即android:configChanges="orientation|screenSize"才会使得切换横竖屏时调用onConfigurationChanged()方法。





posted @ 2016-08-19 15:07  小轩948  阅读(299)  评论(0编辑  收藏  举报