2016-10-10 32 views
0

我剛剛在我們的應用程序中修復了一個錯誤。問題在於對接或取消鎖定設備會導致應用程序重新啓動。此修復程序,這是我拖網論壇線程加載後發現,是uiMode追加到Android:configChanges屬性在AndroidManifest.xml文件:追加uiMode到android:configChanges究竟是幹什麼的?

<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|uiMode" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.Black.NoTitleBar" android:windowSoftInputMode="adjustPan"> 
     <intent-filter android:label="@string/launcher_name"> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

我想,以確保通過提交這一變化的是我不會打破其他一些重要的功能。據我瞭解,這阻止了我們的應用程序在停靠或取消停靠時重新啓動。但是,這一切?我找不到任何容易理解的文檔。

+0

確定,發現它...用戶界面模式已更改 - 當用戶將設備放置在桌面/車載擴展塢或夜間模式更改時,可能會導致此問題。 – Xoundboy

回答

0

android:configChanges添加內容會告訴Android,您將在Activity類中的onConfigurationChanged中自行處理特定事件(或忽略它們)。如果你指定了某些東西,那麼在事件被觸發的情況下,Android本身不會做任何事情,在對接/取消對接的情況下,這將是Activity休閒。

在正常情況下,只要不改變佈局,例如遇到此類事件,就不會破壞任何內容。

+0

感謝您的回答 – Xoundboy