`
wenzongliang
  • 浏览: 466688 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

AndroidManifest.xml中android:configChanges的简介

 
阅读更多

程序在运行时,一些设备的配置可能会改变,如:横竖屏的切换、键盘的可用性等,这样的事情一发生,Activity会重新启动,其中的过程是:在销毁之前会先 called  onSaveInstanceState()去保存你应用中的一些数据,然后called onDestroy(),最后才去called onCreate()或onRestoreInstanceState()方法去重新启动Activity。

 

当指定的属性发生变化时,不会去重新启动Activity,而是通知程序去调用 onConfigurationChanged()函数 例如:在进行横竖屏的切换时,会重新启动Activity,而定义了这个属性,就不会重新启动Activity了,而是去调用 onConfigurationChanged()函数

可以设置多个属性,中间用|隔开                                                                                                                                                                                   

  "mcc"        国际移动用户识别码所属国家代号是改变了-----  sim被侦测到了,去更新mcc    mcc是移动用户所属国家代号

  "mnc"        国际移动用户识别码的移动网号码是改变了------ sim被侦测到了,去更新mnc    MNC是移动网号码,最多由两位数字组成,用于识别移动用户所归属的移动通信网

  "locale"        地址改变了-----用户选择了一个新的语言会显示出来

  "touchscreen"        触摸屏是改变了------通常是不会发生的

  "keyboard"        键盘发生了改变----例如用户用了外部的键盘

  "keyboardHidden"        键盘的可用性发生了改变

  "navigation"        导航发生了变化-----通常也不会发生

  "screenLayout"        屏幕的显示发生了变化------不同的显示被激活

  "fontScale"        字体比例发生了变化----选择了不同的全局字体

  "uiMode"        用户的模式发生了变化

  "orientation"        屏幕方向改变了

  "screenSize"        屏幕大小改变了

  "smallestScreenSize"        屏幕的物理大小改变了,如:连接到一个外部的屏幕上

对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“

分享到:
评论

相关推荐

    AndroidManifest.xml文件剖析.pdf

    AndroidManifest.xml文件是Android应用程序的全局配置文件,它是Android应用程序中最重要的配置文件之一。该文件用于描述应用程序的基本信息、组件信息、权限信息、IntentFILTER信息等。理解AndroidManifest.xml文件...

    AndroidManifest.xml文件剖析[参考].pdf

    AndroidManifest.xml文件是Android程序的全局配置文件, plays a crucial role in the development of Android applications. 在日常的开发中,每创建一个Activity、Service都离不开这个全局配置文件。深入的了解...

    AndroidManifest.xml文件剖析

    AndroidManifest.xml是每个Android应用的核心配置文件,它定义了应用程序的基本属性、组件以及它们如何相互交互。理解并熟练运用这个文件对于任何Android开发者来说都是至关重要的。 首先,AndroidManifest.xml文件...

    android Manifest.xml详解

    ### Android Manifest.xml ...以上是对 Android `Manifest.xml` 文件中几个重要属性的详细介绍。这些属性的合理配置对于优化应用性能、提升用户体验具有重要作用。开发者应根据实际应用的需求灵活选择和使用这些属性。

    Android集成支付宝SDK实现支付功能

    在AndroidManifest.xml中,添加支付宝的Activity声明,以便处理支付结果回调: ```xml android:name="com.alipay.sdk.app.H5PayActivity" android:configChanges="orientation|keyboardHidden|navigation|screen...

    安卓 集成微信支付和支付宝支付

    在AndroidManifest.xml文件中,添加必要的权限和Activity声明,如INTERNET权限以及微信SDK所需的Activity。 ```xml <uses-permission android:name="android.permission.INTERNET" /> android:name=...

    ArtPlayer-一款小巧灵活的视频播放器。支持全屏,小屏播放;支持重力感应;支持IjkPlayer,支持ExoPlayer。.zip

     android:layout_height="200dp"/>AndroidManifest.xml  android:name=".YourActivity"  android:configChanges="orientation|screenSize" /> <!-- required -->Activity@Overridepublic void ...

    Android横竖屏贴换调动方法

    首先,当我们不进行任何特殊配置时,即在`AndroidManifest.xml`中没有指定`android:configChanges`,系统默认处理横竖屏切换的方式如下: 1. 当Activity启动后,依次执行`onCreate()`、`onStart()`和`onResume()`,...

    Android常用技巧.docx

    其次,关于重新载入问题,当屏幕方向改变时,如果不希望重新加载`Activity`,可以利用`AndroidManifest.xml`中的`android:configChanges`属性。将该属性设置为`orientation`,如: ```xml android:name=".Your...

    Android二维码扫描集成步骤,一步一步实现系列

    在AndroidManifest.xml文件中,我们需要申请相机权限,因为扫描二维码需要访问摄像头。在`<manifest>`标签内添加以下权限: ```xml <uses-permission android:name="android.permission.CAMERA" /> <uses-feature ...

    分享SDK使用说明文档1

    然后在AndroidManifest.xml中添加WXEntryActivity: ```xml android:name="tencent_qq_appid" android:value="@string/tencent_qq_appid" /> android:name="weixin_key" android:value="@string/weixin_key...

    Android添加AdMob广告流程

    - 填写详细信息,特别是在URL栏中输入`AndroidManifest.xml`文件中的包名。 2. **下载SDK并集成**: - 在AdMob界面完成应用程序创建后,下载AdMob Android SDK。 - 将下载的SDK解压,找到`admob-sdk-android`...

    android横竖屏切换总结

    在AndroidManifest.xml中,为Activity添加`android:configChanges="orientation|keyboardHidden"`,表示Activity将处理自己的配置变化,而不是被系统销毁并重建。这样,当屏幕方向改变时,系统会调用`...

    Android练习题-修改HelloAndroid的项目要求.pdf

    - 或者在`AndroidManifest.xml`中设置`android:configChanges="locale"`,让应用在语言改变时自动重新加载资源。 6. **运行与调试**: - 使用模拟器或连接真实设备进行测试,确保在不同语言环境下应用能够正确...

    Studio集成极光推送

    同步完成后,我们需要在AndroidManifest.xml文件中配置必要的权限和接收器。在标签内添加以下代码: ```xml <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name=...

    Android-ShUmengSdk封装友盟第三方分享登录微信支付

    1. 在AndroidManifest.xml中添加微信支付所需的权限和活动声明: ```xml android:name="com.tencent.mm.opensdk.pay.InitPayActivity" android:exported="true" /> android:name=...

    android几个静默安装实例

    在AndroidManifest.xml中,你需要声明一个新的特定`Intent`,比如`android.intent.action.VIEW.HIDE`,并将这个Intent与`PackageInstallActivityHide.java`关联起来。同时,为保持兼容性,原始的`...

    share分享.docx

    配置AndroidManifest.xml - **添加权限** - 根据所需功能添加必要的权限,例如: - `android.permission.GET_TASKS`:获取当前正在运行的任务列表。 - `android.permission.INTERNET`:访问互联网。 - `android...

    极光推送Androidstudio版点击事件demo

    android:configChanges="orientation|screenSize" android:exported="false" > ``` 完成上述步骤后,你需要在Application类中初始化极光推送服务: ```java public class MyApplication extends Application { ...

    安卓Android源码——(横竖屏切换处理).rar

    - **自定义处理**:若希望在不销毁Activity的情况下处理配置变更,可以在`onConfigurationChanged(Configuration newConfig)`方法中添加相应逻辑,并在AndroidManifest.xml中设置`android:configChanges=...

Global site tag (gtag.js) - Google Analytics