原文链接:http://blog.csdn.net/zhaokaiqiang1992/article/details/19921703


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提供的模拟任意地理位置,报java.lang.IllegalArgument
  2. android 设置背景透明 半透明 透明
  3. Android开发EditText属性
  4. Android(安卓)View绘制过程以及事件传递原理
  5. Funambol android eclipse上的配置及说明
  6. Android(安卓)中使用MIC(麦克风)录音
  7. Android(安卓)闪屏页 全屏设置方法
  8. android 线程通信Handler Bundle
  9. gps架构分析

随机推荐

  1. Android(安卓)Studio中aidl的使用示例
  2. 【Android】AndroidManifest 中original-
  3. Android仿qq侧滑——上
  4. Unity与Android交互-基础知识
  5. Android编程入门-第1天
  6. nexus 7(一代)上android和ubuntu多系统启
  7. 最详细的Android(安卓)Bitmap回收机制(从
  8. android逆向概述
  9. Android(安卓)WebView加载页面的输入框被
  10. Android(安卓)zxing 二维码扫描和生成方