android中的组件Activity在manifest.xml文件中可以指定参数android:ConfigChanges,用于捕获手机状态的改变。 在Activity中添加了android:configChanges属性,在当所指定属性(Configuration Changes)发生改变时,通知程序调用onConfigurationChanged()函数。

设置方法:将下列字段用“|”符号分隔开,例如:“locale|navigation|orientation”


“mcc“ 移动国家号码,由三位数字组成,每个国家都有自己独立的MCC,可以识别手机用户所属国家。
“mnc“ 移动网号,在一个国家或者地区中,用于区分手机用户的服务商。
“locale“ 所在地区发生变化。
“touchscreen“ 触摸屏已经改变。(这不应该常发生。)
“keyboard“ 键盘模式发生变化,例如:用户接入外部键盘输入。
“keyboardHidden“ 用户打开手机硬件键盘
“navigation“ 导航型发生了变化。(这不应该常发生。)
“orientation“ 设备旋转,横向显示和竖向显示模式切换。
“fontScale“ 全局字体大小缩放发生改变

对android:configChanges属性,一般认为有以下几点:
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

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

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

但是,自从Android 3.2(API 13),在设置Activity的android:configChanges="orientation|keyboardHidden"后,还是一样会重新调用各个生命周期的。因为screen size也开始跟着设备的横竖切换而改变。所以,在AndroidManifest.xml里设置的MiniSdkVersion和 TargetSdkVersion属性大于等于13的情况下,如果你想阻止程序在运行时重新加载Activity,除了设置"orientation",你还必须设置"ScreenSize"。
解决方法:
AndroidManifest.xml中设置android:configChanges="orientation|screenSize“


更多相关文章

  1. Android深入浅出系列课程---Lesson3 AAF110427_进程生命周期Proc
  2. android 布局特殊的属性介绍
  3. Android中shape属性详解:(设置圆角、设置渐变)
  4. 【Android】android:windowSoftInputMode属性详解
  5. Android EditText属性总结
  6. android drawable中的state属性说明
  7. android的属性

随机推荐

  1. 【ALearning】第二章 Androidproject知识
  2. 获取Android当前网络类型(2g、3g、4g、wif
  3. SparseArray和SparseArrayCompat的使用
  4. android 分辨率大总结
  5. Android学习之 Intent
  6. android布局动画实现方法
  7. Android快速开发工具集合——YUtils
  8. AIDL简单实例
  9. android设置Activity背景透明
  10. Android(安卓)SQLite的ORM接口实现(一)---f