游戏中调起支付宝支付后(至关与切换应用进程,使原应用调回后台运行),没有支付,直接返回(至关于重启原应用),而后游戏就闪退了,没有看到明显的错误日志,只看到应用被回收相关日志,观察生命周期运行状况以下图:android
后来发现是因为android:configChanges配置不当,应用被回收重启,致使应用崩溃的,android:configChanges配置的做用是阻止应用在某些状况下不允许被系统回收重启布局
android:configChanges配置的相关值以下表:字体
属性值ui |
含义spa |
mcc.net |
SIM卡惟一标识IMSI(国际移动用户标识码)中的国家代码,由三位数字组成,中国为:460 这里标识mcc代码发生了改变指针 |
mnc日志
|
SIM卡惟一标识IMSI(国际移动用户标识码)中的运营商代码,有两位数字组成,中国移动TD系统为00,中国联通为01,电信为03,此项标识mnc发生了改变blog |
locale生命周期 |
设备的本地位置发生了改变,通常指的是切换了系统语言 |
touchscreen |
触摸屏发生了改变 |
keyboard |
键盘类型发生了改变,好比用户使用了外接键盘 |
keyboardHidden |
键盘的可访问性发生了改变,好比用户调出了键盘 |
navigation |
系统导航方式发生了改变 |
screenLayout |
屏幕布局发生了改变,极可能是用户激活了另一个显示设备 |
fontScale |
系统字体缩放比例发生了改变,好比用户选择了个新的字号 |
uiMode |
用户界面模式发生了改变,好比开启夜间模式-API8新添加 |
orientation |
屏幕方向发生改变,好比旋转了手机屏幕 |
screenSize |
当屏幕尺寸信息发生改变(当编译选项中的minSdkVersion和targeSdkVersion均低于13时不会致使Activity重启)-API13新添加 |
smallestScreenSize |
设备的物理屏幕尺寸发生改变,这个和屏幕方向不要紧,好比切换到外部显示设备-API13新添加 |
layoutDirection |
当布局方向发生改变的时候,正常状况下没法修改布局的layoutDirection的属性-API17新添加 |
上表的值表明Activity会在相应的状况下被系统回收,在须要的时候再重启,若是android:configChanges配置了以上的某个值,表明Activity在相应的状况下不会被系统回收内存,进而避免一些意外的错误出现(特别是一些须要在oncreate中初始化的信息,若是Activity重启,则不会再次执行oncreate,致使在oncreate方法中初始化的信息丢失,进而致使应用报错,通常会出现空指针异常)
问题:为什么Activity被回收重启以后没有执行onCreate()或onNewIntent()或onRestart()等方法,而是直接执行onStart()方法,这个仍是不得而知,若有大神知道,还望指点
参考文章:http://blog.csdn.net/qq_33544860/article/details/54863895