Избегайте перезагрузки с помощью asynctask при изменении ориентации в android

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

Ответ 1

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

Перейдите по этой ссылке: http://developer.android.com/guide/topics/manifest/activity-element.html#config

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

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

Ответ 2

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

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

Ответ 3

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