Android Configuration change属性

问题:横竖屏切换时Activity的生命周期?

答案:

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

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

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

  但是经过测试后结果表明并不都和‘答案’一致:

测试环境:在HTC t329d 4.1和模拟器2.2.3上的测试结果:

1、和答案中的第1点不一致。不设置Activity的android:configChanges时,不管切横屏还是切竖屏,都只会重新调用生命周期一次。

2、和‘答案’中第2点一致

3、和答案中的第3点不一致。设置Activity的android:configChanges=”orientation|keyboardHidden”时,在Android 3.2(API Level 13)之前,切屏还是会重新调用各个生命周期,不会执行onConfigurationChanged()方法。在Android 3.2之后必须在configChanges中添加screenSize才不会在切屏时重新调用各个生命周期。并执行onConfigurationChanged()方法。

  从测试结果和‘答案’的不一致告诉me,对于所谓的'答案'最好亲测比较靠谱,而且对于给答案的人最好指明下测试环境,否则测试结果不同也无处对照。全面透彻尽可能多地去覆盖有关Configuration Change的知识。其实对于第一点,切横屏还是竖屏导致Activity重建的次数并不重要,重要的是它被重建了以及重建会引发什么问题。

  Configuration 这个类描述了设备的所有配置信息,这些配置信息会影响到应用程序检索的资源。包括了用户指定的选项(locale和scaling)也包括设备本身配置(例如input modes,screen size  and  screen orientation).可以在该类里查看所有影响Configuration Change 的属性。

  横竖屏切换是我们最常见的影响配置变化的因素,还有很多其他影响配置的因素有语言的更改(例如中英文切换)、键盘的可用性(这个没理解)等

常见的引发Configuration Change的属性:

横竖屏切换:android:configChanges="orientation"

键盘可用性:android:configChanges="keyboardHidden"

屏幕大小变化:android:configChanges="screenSize"

语言的更改:android:configChanges="locale"

 

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

转载于:https://www.cnblogs.com/aiguozhe/p/3871485.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio配置 Android Studio是一款由Google开发的集成开发环境(IDE),用于开发Android应用程序。在使用Android Studio之前,需要进行一些配置,以确保它能够正常工作。 首先,需要安装Java开发工具包(JDK)。Android Studio需要JDK 8或更高版本才能运行。可以从Oracle官网下载并安装JDK。 其次,需要下载并安装Android Studio。可以从官网下载最新版本的Android Studio,并按照安装向导进行安装。 安装完成后,需要配置Android Studio。首先,需要设置Android SDK的路径。Android SDK是一组开发工具,包括Android平台、SDK工具和其他组件,用于开发Android应用程序。可以在安装Android Studio时选择安装Android SDK,或者在后续安装过程中安装它。在Android Studio中,可以通过“File”菜单中的“Project Structure”选项来设置Android SDK的路径。 另外,还需要配置Android虚拟设备(AVD)。AVD是一种模拟Android设备的工具,用于在开发和测试应用程序时模拟不同的设备和操作系统版本。可以在Android Studio中通过“Tools”菜单中的“AVD Manager”选项来创建和管理AVD。 最后,还需要配置Gradle。Gradle是一种构建工具,用于构建和打包Android应用程序。在Android Studio中,默认使用Gradle构建工具。可以在“File”菜单中的“Settings”选项中配置Gradle。 以上就是Android Studio的配置过程。配置完成后,就可以开始使用Android Studio开发Android应用程序了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值