Страница 1 из 1

Пересоздание Activity при повороте экрана.

Добавлено: 10 июл 2013, 16:34
KamiSempai
Суть проблемы такова. Есть Activity для которой в манифесте запрещено когда-либо пересоздаваться.
Крутим, вертим девайс, сворачиваем, разворачиваем приложение, все отлично работает, Activity не пересоздается.
Но стоит на планшете перейти в экран блокировки, то при повороте вызывается onDestroy.
Проверял на Kindle HD и Nexus 7. На первом Kindle такой пакости не замечено.

Может кто сталкивался с этим и знает решение?

Re: Пересоздание Activity при повороте экрана.

Добавлено: 10 июл 2013, 16:50
anber
KamiSempai писал(а):Суть проблемы такова. Есть Activity для которой в манифесте запрещено когда-либо пересоздаваться.
Крутим, вертим девайс, сворачиваем, разворачиваем приложение, все отлично работает, Activity не пересоздается.
Но стоит на планшете перейти в экран блокировки, то при повороте вызывается onDestroy.
Проверял на Kindle HD и Nexus 7. На первом Kindle такой пакости не замечено.

Может кто сталкивался с этим и знает решение?
У меня Nexus 7, как воспроизвести? Если экран заблокирован то никакие события при вращении не проиходят
В манифесте у активити я так понимаю android:configChanges="keyboardHidden|orientation|screenSize"

Re: Пересоздание Activity при повороте экрана.

Добавлено: 10 июл 2013, 17:01
KamiSempai
Причина найдена. Все дело в screenSize. У меня не его нет в android:configChanges.
Однако, screenSize было добавлено в 13 API, а у меня в приложении используется 8 API.

Re: Пересоздание Activity при повороте экрана.

Добавлено: 10 июл 2013, 17:08
anber
KamiSempai писал(а):Причина найдена. Все дело в screenSize. У меня не его нет в android:configChanges.
Однако, screenSize было добавлено в 13 API, а у меня в приложении используется 8 API.
у самого нексуса то 17 апи

Re: Пересоздание Activity при повороте экрана.

Добавлено: 10 июл 2013, 18:10
KamiSempai
API устройства тут почти не играет ни какой роли. За исключением того, что описанная проблема будет воспроизводиться на всех устройствах с API выше 13.

Как оказалось все довольно просто. В свойствах проекта, на вкладке Android, выбрал Android 4.0.3 (он у меня был скачан), в манифесте target API указал 15 минимальную 8.
Ну и конечно в android:configChanges добавил screenSize.