Избегайте перезагрузки активности с асинхронной задачей при изменении ориентации в Android - PullRequest
17 голосов
/ 17 марта 2011

Как избежать перезагрузки действия с помощью класса asynctask в действии, когда пользователь меняет ориентацию в Android?Кто-нибудь может привести пример?

Ответы [ 3 ]

75 голосов
/ 17 марта 2011

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

Чтобы передавать активные объекты между экземплярами Activity, используйте новую статическую библиотеку фрагментов, которая позволяет создавать фрагмент, сохраняемый для всех экземпляров.

2 голосов
/ 17 марта 2011

Чираг уже правильно указал решение.

Я просто хочу добавить, что перезапуск Activity не имеет ничего общего с AsyncTask в нем. По умолчанию, когда есть какие-либо изменения конфигурации, действие перезапускается, ЕСЛИ изменение конфигурации явно не обрабатывается действием. Это делается путем записи в файл манифеста.

Перейдите по этой ссылке руководство разработчика: Android: configChanges

ПРИМЕЧАНИЕ : проверьте код на устройстве, которое отсутствует в эмуляторе. Потому что раньше я сталкивался с подобной проблемой. Тот же код не работал на эмуляторе, но он отлично работал на устройстве. Поэтому добавьте запись для android:configChanges в манифест и проверьте приложение на устройстве Android вместо эмулятора.

И я второй @hackbod. Делайте это только при необходимости!

0 голосов
/ 29 ноября 2015

Как сохранить 2 «предупреждающих» диалога, открытых друг от друга при смене ориентации? Поверьте мне, не так просто перезапустить 3 фрагмента активности с 2 открытыми диалогами. Программисты не успевают заниматься ненужным программированием. Проще либо остановить изменение ориентации для какой-либо части приложения, либо заблокировать его навсегда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...