Подтвердить что ты не робот

Активность OnCreate называется, когда телефон идет спать

Когда я нажимаю кнопку сна на моем Droid, моя активность oncreate вызывается. Почему это происходит? Почему ОС должна вызывать OnCreate, когда устройство будет спать? Есть ли способ остановить это или, по крайней мере, знать это, потому что телефон был усыпан?

4b9b3361

Ответ 1

Это происходит, в частности, для операций, которые заблокированы при вращении, например. это в манифесте в тегах активности:

android:screenOrientation="portrait"

Когда вы выключаете экран, он считывает акселерометр, чтобы определить истинную ориентацию и изменения до этого, прежде чем выключать.

Итак, простое решение добавляет configChanges, делая его похожим на это:

<activity 
    android:name=".MyActivity"
    android:screenOrientation="landscape"
    android:configChanges="orientation"
/>

Вам не нужно указывать screenOrientation, но если вы не занимаетесь какой-либо ориентацией, когда она начинается, она останется, если вы не напишете код для обработки изменений конфигурации.

В качестве побочного примечания, когда я начал тестировать свои приложения на ICS, мне приходилось обрабатывать несколько причуд с циклом create/destroy/create в начале некоторых действий. Для обеспечения универсальности кода необходимы несколько дополнительных сдержек и противовесов.

Ответ 2

У меня было то же самое, что и мое приложение (игра), перезагруженное, когда оно приходит из сна

вот что я сделал для его решения

i добавить

<activity 
     android:configChanges="orientation|screenSize"
/>

надеюсь, что это поможет кому-то!