What does appending uiMode to android:configChanges actually do?
<p>I just fixed a bug in our application. The problem was that docking or undocking the device causes the application to restart. The fix, which I found after trawling loads of forum threads, was to append <strong>uiMode</strong> to the android:configChanges attribute in the AndroidManifest.xml file:</p>

<pre><code>    &lt;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"&gt;
        &lt;intent-filter android:label="@string/launcher_name"&gt;
            &lt;action android:name="android.intent.action.MAIN" /&gt;
            &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
        &lt;/intent-filter&gt;
    &lt;/activity&gt;
</code></pre>

<p>I want to be sure that by committing this change that I'm not going to break some other important functionality. As I understand it this prevents our application from being restarted upon docking or undocking. But is that all? I can't find any easy to understand documentation.</p>