android onConfigurationChanged讲解
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!
相信大家对这个属性已经耳熟能详,如果大家受过转屏的折磨的话!
老规矩,先讲讲官方文档是怎么说的。为什么需要这个属性呢?原因很简单,当前手机信息、状态发生改变时,它就会被销毁然后重启动,浪费资源;怎么来防止这类情况发生呢?很好,onConfigurationChanged给我们带来了福音!
那么哪些配置信息发生改变,会产生状况呢?下面我们来一起看看!
mcc:移动设备国家代码(Mobile Country Code,MCC)更换的Sim卡改变了MCC.
mnc:移动设备网络代码(Mobile Network Code,MNC)更换的Sim卡改变了MNC.
通过某个国家的国家代码和网络代码共同确定当前手机网络运营商;因为同一个网络在不同国家可能运营商不同。
locale:用户选择一种新的语言
touchscreen:更换手机屏幕.
keyboard:键盘类型发生改变,如更换外置键盘.
keyboardHidden:手机键盘是否可显示被设置,如已使用外置键盘.
navigation:导航系统发生改变.
screenLayout:手机屏幕布局发生改变,如新的屏保被激活.
fontScale:手机字体发生改变.
uiMode:2.2系统之后才出现,如用户把手机放桌子上、车子上或默认模式被启用.
orientation:手机屏幕切换,如横竖屏;如果运行sdk在13及以上,也需要加上screenSize.
screenSize:可用屏幕大小发生改变;sdk在12及以下不需要注意.
smallestScreenSize:手机屏幕发生改变,且不用顾及转屏的问题;如放到一个投影仪查看手机,API13以上添加的属性.
layoutDirection:手机屏幕左右或上下互换,API17以上添加的属性.
那么这些情况我们说清楚了,我们具体来讲讲为什么要监听这些状况,以及安卓为什么要来设计这么多状况(一句话,为满足用户使用手机的多样性)?
举例说明:讲述设置android onConfigurationChanged的意义
不设置时,横屏导致当前Activity生命周期重新执行一次,竖屏两次
只设置为orientation时,横竖屏则只执行一次
而设置为orientation|keyboardHidden,则生命周期不再执行,只是执行onConfigurationChanged方法,这样就减少了我们代码的复杂性
说了这么多好处,那么怎样做,才能做到呢?
首先加入权限 :
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
然后给Activity设置属性:
如android:configChanges="orientation|keyboard"
最后在Activity的onConfigurationChanged加载不同的布局,或采取相应的操作即可。
今天就暂时讲到这里,日后遇到类似问题或者网友答疑,再来更新!
小知识记录(转):
getRawX()和getRawY():获得的是相对屏幕的位置.
getX()和getY():获得的永远是相对view的触摸位置坐标(这两个值不会超过view的长度和宽度)。
getLeft , getTop, getBottom,getRight, 这个指的是该控件相对于父控件的距离.
android onConfigurationChanged讲解的更多相关文章
- Android onConfigurationChanged的作用
API原文说明: android:configChangesLists configuration changes that the activity will handle itself. When ...
- Android开发工程师文集-Android知识点讲解
前言 大家好,给大家带来Android开发工程师文集-Android知识点讲解的概述,希望你们喜欢 WebView讲解 一般通过Intent调用系统的浏览器: Uri uri = Uri.parse( ...
- 四 Android Capabilities讲解
本文转自:http://www.cnblogs.com/sundalian/p/5629429.html Android Capabilities讲解 1.Capabilities介绍 可以看下之 ...
- android onConfigurationChanged的那点事
Android学习笔记——关于onConfigurationChanged 从事Android开发,免不了会在应用里嵌入一些广告SDK,在嵌入了众多SDK后,发现几乎每个要求在AndroidMan ...
- Android onConfigurationChanged(Configuration cfg) 无法触发问题
1.android:configChanges="orientation|keyboardHidden"的使用 当在activity加上android:configChange ...
- 五 Android Capabilities讲解
1.Capabilities介绍 可以看下之前代码里面设置的capabilities DesiredCapabilities capabilities = new DesiredCapabilitie ...
- Appium python自动化测试系列之Android知识讲解(三)
3.1 ADB工具讲解 3.1.1 什么是ADB呢? 我们不去解释官方语言的翻译,给大家说一个通熟易懂的说法,ADB我理解为他就是电脑和手机连接的桥梁.此连接不是充电的连接,大家不要混淆,说他是一个 ...
- Android onConfigurationChanged 收不到回调
我返现,90度横屏 旋转到270度横屏onConfigurationChanged 是收不到回掉的.尽管清单里面声明了什么: android:configChanges="orientati ...
- Android onConfigurationChanged用法(规避横竖屏切换导致的重新调用onCreate方法)
onConfigurationChanged的目的是为了规避横竖屏切换干掉activity而重新调用onCreate方法的问题:有的时候,我们希望重新进入OnCreate生命周期,此时可以调用onSa ...
随机推荐
- mvc伪静态<四> 伪静态后静态页面或者引用的css和图片失效
引用的css和图片失效的解决办法 把样式引用文件的相对路径改成绝对路径就可以了 比如原先的引用路径为:<link href="~/Content/css/style.css" ...
- ios基础篇(二)——UIImageView的常见用法
UIImageView是在界面上显示图片的一个控件,在UIImageView中显示图片的话应该首先把图片加载到UIImage中,然后通过其他方式使用该UIImage. 创建UIImageView有两种 ...
- lucene字典实现原理——FST
转自:http://www.cnblogs.com/LBSer/p/4119841.html 1 lucene字典 使用lucene进行查询不可避免都会使用到其提供的字典功能,即根据给定的term找到 ...
- DOM系列---进阶篇【转】
内容提纲: 1.DOM类型 2.DOM扩展 3.DOM操作内容 一.DOM类型 DOM基础篇中,我们了解了DOM的节点并且了解怎样查询和操作节点,而本身这些不同的节点,又有着不同的类型. DOM类 ...
- javascript 判断身份证的正确性
function isIdCardNo(vals) { var cardNum = vals; if (cardNum.length == 0) { return true; } // 11-15,2 ...
- 修改Widows网络设置提升网速
可能很多用户不知道,我们在使用Windows系统连接Internet,系统默认保留20%的带宽,也就是说我们进行网络数据传输所能使用的带框仅为实际带宽的80%,但是我们修改网络设置或的最大带宽. 1. ...
- Admob(6.12.x)符号未定义错误的解决方法(IOS)
在升级Admob的SDK版本到6.12.x时, 按照官方文档操作(https://developers.google.com/mobile-ads-sdk/docs/#ios), 添加如下framew ...
- Apache—DBUtils
简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影 ...
- 2、IValueConverter应用
1.C#代码如下: public class logotoimgConverter:IValueConverter { //将logo转换为URI public object Convert(obje ...
- HDU 4087 三维上的平移缩放旋转矩阵变化
题目大意: 就是根据它给的程序的要求,不断平移,缩放,旋转三维的点,最后计算出点的位置 这里主要是要列出三种转换方式的齐次矩阵描述 平移translate tx ty tz1 0 0 00 1 0 0 ...