我刚刚在我们的应用程序中修复了一个错误。问题是对接或取消对接设备会导致应用程序重新启动。我在搜索大量论坛帖子后发现的修复是将 uiMode 附加到AndroidManifest.xml文件中的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 :(得分:3)
向android:configChanges
添加内容告诉Android您将在Activity类的onConfigurationChanged
中自己处理特定事件(或忽略它们)。如果您指定某些内容,Android会在触发事件的情况下自行执行任何操作,这将是对接/取消停靠时的活动重新创建。
在正常情况下,只要您不改变布局,就不会破坏任何内容,例如在发生此类事件时。