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

一、Configuration Change概述
1、Configuration 这个类描述了设备的所有配置信息,这些配置信息会影响到应用程序检索的资源。横竖屏切换是我们最常见的影响配置变化的因素,还有很多其他影响配置的因素有语言的更改(例如中英文切换)、键盘的可用性(这个没理解)等

2、常见的引发Configuration Change的属性:

横竖屏切换:android:configChanges=”orientation”
键盘可用性:android:configChanges=”keyboardHidden”
屏幕大小变化:android:configChanges=”screenSize”
语言的更改:android:configChanges=”locale”

3、在程序运行时,如果发生Configuration Change会导致当前的Activity被销毁并重新创建,即先调用onDestroy紧接着调用onCreate()方法。重建的目的是为了让应用程序通过自动加载可替代资源来适应新的配置。

二、测试验证

测试如图所示:
Android基础之横竖屏切换时Activity的生命周期_第1张图片

最后总结:在Android 3.2之后必须在configChanges中添加screenSize才不会在切屏时重新调用各个生命周期。并执行onConfigurationChanged()方法。即:android:configChanges=”orientation|keyboardHidden|screenSize”

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横竖屏时都会执行一次

2、设置Activity的android:configChanges=”orientation”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

3、设置Activity的android:configChanges=”orientation|keyboardHidden”时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。

你可能感兴趣的:(android)