遊戲中調起支付寶支付後(至關與切換應用進程,使原應用調回後臺運行),沒有支付,直接返回(至關於重啓原應用),而後遊戲就閃退了,沒有看到明顯的錯誤日誌,只看到應用被回收相關日誌,觀察生命週期運行狀況以下圖: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