Посмотрите LoaderCustomSupport (используйте AsyncTaskLoader) и FragmentRetainInstanceSupport (используйте Thread, почти эквивалентный к AsyncTask)
Оба примера имеют следующие общие черты.
- Оба не блокируют поток пользовательского интерфейса при загрузке данных
- Нисходящий поток данных не уничтожается, когда пользователь выполняет изменение конфигурации, как поворот экрана.
- При извлечении данных, получающих данные, они могут обновляться до правильного пользовательского интерфейса фрагмента
Однако существуют различия.
AsyncTaskLoader
- Похоже, что нет простого способа обновить промежуточный прогресс до диалога индикатора выполнения.
AsyncTask
- Не уверен в этом. Но документация от Android, по-видимому, рекомендует AsyncTaskLoader для загрузки асинхронных данных и обновления конечного результата в интерфейсе пользователя?
Есть ли какая-либо директива или контрольный список, чтобы принять решение о том, следует ли выбирать AsyncTaskLoader или AsyncTask, выполнять трудоемкую задачу загрузки и обновлять результат до пользовательского интерфейса фрагмента?