android:configChanges配置不當,應用被回收重啓,致使應用崩潰

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

相關文章
相關標籤/搜索