关于onConfigurationChanged
这两天测试app时,发现一个奇怪问题,app在启动后,Activity会onCreate两次,起初以为是横屏设置导致,随即在Activity中添加了android:configChanges="orientation|screenSize|keyboardHidden",经测试问题还是未解决。最后反复观察,发现设备在用wifi(不插入sim卡)时,并不存在该问题。所以怀疑是sim或移动上网产生的问题。仔细看了看configChanges能够设置的选项,发现有很多:
android:configChanges=["mcc", "mnc", "locale", "touchscreen", "keyboard", "keyboardHidden", "navigation", "screenLayout", "fontScale", "uiMode", "orientation", "screenSize", "smallestScreenSize"]
http://developer.android.com/guide/topics/manifest/activity-element.html
mcc - 英文原文为Mobile Country Code,中文意思是移动国家号码,由3位数字组成,唯一地识别移动用户所属的国家。我国为460。
mnc - 英文原文为Mobile Network Code,中文意思是移动网号。它是一组十进制码,用以唯一地表示某个国家(由MCC确定)内的某一个特定的GSMPLMN网。移动网号(MNC)由二个十进制数组成,编码范围为十进制的00-99。若一个国家中有多于一个的GSM公司陆地移动网(PLMN),则每个网必须具有不同的MNC。
imsi - international mobile subscriber identity 国际上为唯一识别一个移动用户所分配的号码。其由mcc(3位) + mnc(2位) + msin(10位)组成,共15位。
当手机开机后,会从sim卡中读取imsi,并发给网络判断其有效性。有了解如何解锁at&t合约机的应该很清楚这些东西。
其中,当mcc和 mnc从sim卡中读取到时,也会导致onCreate重复执行。所以修改android:configChanges="mcc|mnc|orientation|screenSize|keyboardHidden"即可,测试后恢复正常。
其实我这里app需求比较特殊,公司自有的设备,自定义的launcher,开机即启动指定的app,所以应该是在设备未检测到sim相关信息前就启动,当app启动后,sim又被检测到,所以导致app再次执行Activity的onCreate。
参考资源
http://blog.csdn.net/js931178805/article/details/7666463
http://zh.wikipedia.org/wiki/移动设备网络代码
http://www.quwenba.com/question/info/id/69
http://mobile.pconline.com.cn/339/3395040.html
http://blog.csdn.net/android_xiaoqi/article/details/7771177
http://blog.csdn.net/coding_or_coded/article/details/6889870
http://bbs.csdn.net/topics/390413976
http://www.cnblogs.com/wisekingokok/archive/2011/10/06/2199948.html
关于onConfigurationChanged的更多相关文章
- Android 中onConfigurationChanged问题
onConfigurationChanged 不生效问题解决方案: 1).首先,需要重写onConfigurationChanged函数 @Override public void onConf ...
- android 连接蓝牙扫码枪,程序崩溃之onConfigurationChanged
当android手机通过蓝牙连接扫码枪时,程序崩溃的原因之一是:键盘弹出或隐藏,触发程序走了onDestory->onCreate的生命周期,从而可能使得页面的某些初始化数据被清除了. 解决方法 ...
- android onConfigurationChanged讲解
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 相信大家对这个属性已经耳熟能详,如果大家受过转屏的折磨的话! 老规矩,先讲讲官方文档是怎么说的.为什 ...
- onConfigurationChanged is not called&& 翻转屏幕不执行onConfigurationChanged方法&&onConfigurationChanged不执行
我总结出一句话: 如果target sdk>=13,必须使用如下方式声明activity:android:configChanges="orientation|screenSize&q ...
- onConfigurationChanged与OnCreate,究竟谁被调用的问题
在以前的版本中只要在AndroidManifest.xml文件中对activity指定android:configChanges="keyboardHidden|orientation&qu ...
- Android onConfigurationChanged(Configuration cfg) 无法触发问题
1.android:configChanges="orientation|keyboardHidden"的使用 当在activity加上android:configChange ...
- 转:onConfigurationChanged的作用
API原文说明:android:configChangesLists configuration changes that the activity will handle itself. When ...
- Android onConfigurationChanged的作用
API原文说明: android:configChangesLists configuration changes that the activity will handle itself. When ...
- 响应的系统设置的事件——重写onConfigurationChanged响应系统设置更改
如果程序需要监听系统设置的更改,则可以考虑重写Activity的onConfigurationChanged(Configuration newConfig)方法,该方法是一个基于回调的事件处理方法: ...
- onConfigurationChanged方法的使用
在日常生活中,手机会有很多种配置放生改变的情况,当然,有些时候需要监听他们并对他们进行处理,这就涉及到了onConfiguration方法的使用,我大致说一下,这个方法需要发生在屏幕切换横竖屏,或者选 ...
随机推荐
- nowcoder 202F-平衡二叉树
题目链接 题目描述 平衡二叉树,顾名思义就是一棵“平衡”的二叉树.在这道题中,“平衡”的定义为,对于树中任意一个节点,都满足左右子树的高度差不超过 d. 空树的高度定义为0,单个节点的高度为1,其他情 ...
- python selenium判断元素是否存在的问题
爬虫的时候经常用到这个,找到了一个比较好用的方法 原文链接:http://blog.csdn.net/u012189659/article/details/36391837 背景:selenium+p ...
- Common Substrings POJ - 3415(长度不小于k的公共子串的个数)
题意: 给定两个字符串A 和 B, 求长度不小于 k 的公共子串的个数(可以相同) 分两部分求和sa[i-1] > len1 sa[i] < len1 和 sa[i-1] < ...
- oracle +plsql装完省略号不能点
1.如图 2.复制 TNS 服务名 3.复制到 登录框的 Database ,输入用户名密码,点OK..可以进去了,省略号变成可点击状态
- NEERC 15 (10/12)
NEERC=Not Easy European Regional Contest 据说NEERC天天被搬,赶紧做了好了.在Claris和Google的帮助下做了10题,感谢cls. http://co ...
- BZOJ 2938: [Poi2000]病毒
2938: [Poi2000]病毒 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 693 Solved: 360[Submit][Status][Di ...
- 【BZOJ4025】二分图(线段树分治,并查集)
[BZOJ4025]二分图(线段树分治,并查集) 题面 BZOJ 题解 是一个二分图,等价于不存在奇环. 那么直接线段树分治,用并查集维护到达根节点的距离,只计算就好了. #include<io ...
- Android Emoji兼容包使用详解
Emoji兼容性 我们经常会遇到这样的问题: 给朋友发的emoji表情, 在自己手机上展示是正常的, 但是到朋友手机上, 却没有展示出来, 或者展示出来了, 但是也跟自己手机上展示的不一样. 所以, ...
- 压测工具-Jmeter
server压力测试首选: Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 1 JMet ...
- 如何设置C++崩溃时生成Dump文件
Dump 文件是进程的内存镜像 , 可以把程序的执行状态通过调试器保存到dump文件中 ; Dump 文件是用来给驱动程序编写人员调试驱动程序用的 , 这种文件必须用专用工具软件打开 , 比如使用 W ...