您的位置:首页 > 移动开发 > Android开发

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

2016-08-19 15:07 459 查看
先来张经典图镇楼...



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()方法。

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: