Вращающаяся ориентация во время вызова веб-службы - PullRequest
0 голосов
/ 18 июля 2011

У меня есть ListActivity, которое создает экземпляр AsyncTask, выполняет вызов веб-службы и заполняет ListView результатами.

Как мне обрабатывать ротацию устройств, пока AsyncTask еще работает?Должен ли я отменить его, сохранить все данные, которые мне нужны, и начать новые, когда воссоздан ListActivity?Андроид как-то уже обрабатывает такой случай?

Ответы [ 3 ]

0 голосов
/ 18 июля 2011

Требуется ли воссоздание вашей ListActivity при изменении ориентации?Я ожидаю, что ваши пользователи не захотят этого, а скорее продолжат заполнение ListView.

У меня есть приложение, которое выполняет серию HTTP GET и POST внутри строки AsyncTasks, без перезапускаактивность каждый раз, когда ориентация меняется.Все, что вам нужно, это строка, аналогичная следующей в вашем манифесте.

android:configChanges="orientation"

См. Документы в http://developer.android.com/guide/topics/manifest/activity-element.html

0 голосов
/ 06 октября 2011

Предложение Торида о переопределении обработчика изменения конфигурации работает в большинстве ситуаций. Однако я обнаружил, что устройства некоторых производителей по-прежнему воссоздают активность, даже когда вы это делаете (я видел 1 телефон HTC, который делает это до сих пор).

Правильное решение - ответ CommonsWare по следующей ссылке:

Фоновая задача, диалоговое окно прогресса, изменение ориентации - есть ли 100% рабочее решение?

0 голосов
/ 18 июля 2011

Похоже, что здесь вам требуется служба, а не асинхронная задача - поскольку вы выполняете длинный запрос, который должен сохраняться и доставлять результаты одинаково, независимо от ориентации.

Кстати, убить Asynctask НЕ просто - лучше не идти туда вообще, но позволить сервису действительно работать в фоновом режиме.

...