双卡双待手机,开启飞行模式或者关闭飞行模式时,Activity被系统重启了。原因就和屏幕旋转一样,因为触发了MCC或者MNC
  <activity            android:name="com.test.MainActivity"            android:launchMode="singleTask"            android:configChanges="orientation|keyboardHidden|mcc|mnc"            android:windowSoftInputMode="stateHidden"
  android:configChanges="orientation|keyboardHidden|mcc|mnc"

为什么双卡双待手机会引起这样的问题,要从IMSI说起。

国际移动用户识别码,即IMSI(InternationalMobileSubscriberIdentity),它是在公众陆地移动电话网(PLMN)中用于唯一识别移动用户的一个号码。在GSM网络,这个号码通常被存放在SIM卡中。

从技术上讲,IMSI可以彻底解决国际漫游问题。但是由于北美目前仍有大量的AMPS系统使用MIN号码,且北美的MDN和MIN采用相同的编号,系统已经无法更改,所以目前国际漫游暂时还是以MIN为主。其中以O和1打头的MIN资源称为IRM(International Roaming MIN),由IFAST (International Forum on ANSI-41 Standards Technology)统一管理。目前联通申请的IRM资源以09打头。可以看出,随着用户的增长,用于国际漫游的MIN资源将很快耗尽,全球统一采用IMSI标识用户势在必行.

IMSI共有15位,其结构如下:

MCC+MNC+MIN

MCC:Mobile Country Code,行动装置国家代码,共3位,中国为460;

MNC:Mobile Network Code,移动设备网络代码,2位(欧洲标准)或3位(北美标准),中国电信CDMA系统使用03,一个典型的IMSI号码为460030912121001;

MIN共有10位,其结构如下:

09+M0M1M2M3+ABCD

其中的M0M1M2M3和MDN号码中的H0H1H2H3可存在对应关系,ABCD四位为自由分配。

可以看出IMSI在MIN号码前加了MCC,可以区别出每个用户的来自的国家,因此可以实现国际漫游。在同一个国家内,如果有多个CDMA运营商,可以通过MNC来进行区别.

描述
"mcc"

The IMSI mobile country code (MCC) has changed — a SIM has been detected and updated the MCC.
IMSI移动国家代码(MCC)已经改变了- SIM已经发现和更新了MCC。
"mnc" The IMSI mobile network code (MNC) has changed — a SIM has been detected and updated the MNC.
IMSI移动网络的代码(跨国公司)已经改变- SIM卡被发现和更新了跨国公司。
"locale" 用户改变了系统的语言,比如由中文切为英文。
"touchscreen" 触摸屏发送了改变(正常情况一般不会出现)
"keyboard" 当键盘类型发送改变,比如用户外接了一个USB键盘。
"keyboardHidden" 键盘可见性发生改变,比如有些手机有物理键盘(原来就有,只是不可见),当物理键盘被抽成或者滑出时。
"navigation" 导航类型发送了改变(由trackball轨迹球在dpad中发送切换)正常情况是不会出现的。
"screenLayout" The screen layout has changed — this might be caused by a different display being activated.
"fontScale" 字体大小改变,用户在设置中改变了全局的字体大小,比如启用了老年模式。
"uiMode" The user interface mode has changed — this can be caused when the user places the device into a desk/car dock or when the night mode changes. SeeUiModeManager.Added in API level 8.
"orientation" 屏幕方向发生变化,也就是用户旋转了手机。如果targets API高于13,还需要配置screenSize才行
"screenSize" 屏幕旋转时触发,或者屏幕比例变化。如果targets API低于13,不配置这个也不会导致ACTIVITY重启。
"smallestScreenSize"

物理尺寸变化。比如当手机连接电视,让电视当显示器。在API13时增加,如果targets API低于13,不配置这个也不会导致ACTIVITY重启。

"layoutDirection" 屏幕的方向比横竖屏切换更具体,横屏也有两种情况,返回键在左边,或者在右边。这个就是告诉你返回键在左边还是右边。可惜API 17以后才有。





更多相关文章

  1. android通过webservice验证用户
  2. android通过USB的MTP模式下,禁止用户在根目录有任何操作(重命名 删
  3. Android——通过电话号码获得联系人图像、姓名
  4. Android 检测用户一段时间无操作
  5. Android自动判定输入的是电话号码还是网址
  6. Google用户登录界面 Android实现
  7. Android 重力感应选号码
  8. Android 深入解析用户界面(一)
  9. android 访问web端与解析json,模拟用户登录

随机推荐

  1. android Lollipop勿扰模式
  2. Android中引入第三方Jar包的方法(java.la
  3. Android 布局之TableLayout
  4. Android百度地图——定位SDK(版本v3.1)(一)
  5. 使用 Android(安卓)实现联网
  6. 【android】AsyncTask完全剖析(二)
  7. Android 仿微信Activity左右切换 【全局
  8. 【Android开发学习02】Android应用程序的
  9. 使用android studio 查看 android 的源代
  10. Android Studio和Eclipse快捷键对比,及快