Ответ 1
Это происходит, в частности, для операций, которые заблокированы при вращении, например. это в манифесте в тегах активности:
android:screenOrientation="portrait"
Когда вы выключаете экран, он считывает акселерометр, чтобы определить истинную ориентацию и изменения до этого, прежде чем выключать.
Итак, простое решение добавляет configChanges, делая его похожим на это:
<activity
android:name=".MyActivity"
android:screenOrientation="landscape"
android:configChanges="orientation"
/>
Вам не нужно указывать screenOrientation, но если вы не занимаетесь какой-либо ориентацией, когда она начинается, она останется, если вы не напишете код для обработки изменений конфигурации.
В качестве побочного примечания, когда я начал тестировать свои приложения на ICS, мне приходилось обрабатывать несколько причуд с циклом create/destroy/create в начале некоторых действий. Для обеспечения универсальности кода необходимы несколько дополнительных сдержек и противовесов.