先来张经典图镇楼...
1.onWindowFocusChanged()的调用时机
创建Activity的调用顺序
![](https://images2015.cnblogs.com/blog/781056/201608/781056-20160819150654453-1171755739.png)
锁定屏幕
![](https://images2015.cnblogs.com/blog/781056/201608/781056-20160819150655265-1285710551.png)
解锁屏幕
![](https://images2015.cnblogs.com/blog/781056/201608/781056-20160819150655703-4627620.png)
该方法在Activity窗口获得或失去焦点时被调用,例如创建时首次呈现在用户面前;当前Activity被其他Activity覆盖;当前Activity转到其他Activity或按Home键回到主屏,自身退居后台;用户退出当前Activity。
注:对于该方法,适合在onCreate中无法获取试图组件大小的时候使用。
2.onSaveInstanceState
(1)在Activity被覆盖或退居后台之后,系统资源不足将其杀死,此方法会被调用;
(2)在用户改变屏幕方向时,此方法会被调用,此时比较适合保存临时数据。
![](https://images2015.cnblogs.com/blog/781056/201608/781056-20160819150656421-1712595330.png)
(3)在当前Activity跳转到其他Activity或者按Home键回到主屏,自身退居后台时,此方法会被调用。
3.onRestoreInstanceState,一般重写以便获取在onSaveInstanceState保存的临时数据。
(1)在Activity被覆盖或退居后台之后,系统资源不足将其杀死,然后用户又回到此Activity,此方法会被调用;
(2)在用户改变屏幕方向时,重建的过程中,此方法会被调用。
提高切换横竖屏的效率
为避免切换横竖屏时,Activity的销毁重建过程,需要在AndroidMainfest.xml中对OrientationActivity对应的<activity>配置android:configChanges="orientation",测试结果如下,
![](https://images2015.cnblogs.com/blog/781056/201608/781056-20160819150656843-243036664.png)
注:在android 4.0以上还须要加上screenSize,即android:configChanges="orientation|screenSize"才会使得切换横竖屏时调用onConfigurationChanged()方法。