[android] AsyncTaskLoader vs AsyncTask


1 Answers

Когда вы сравниваете AsyncTaskLoader и AsyncTask , как вы можете знать, когда вы поворачиваете экран своего устройства, он может уничтожать и воссоздавать вашу активность, чтобы было ясно, что изображение будет вращаться на вашем устройстве во время сетевой транзакции:

AsyncTask будет повторно выполняться как фоновый поток снова, а предыдущая обработка фоновых потоков была просто избыточной и зомби.

AsyncTaskLoader будет просто повторно использоваться на основе идентификатора загрузчика, который ранее был зарегистрирован в диспетчере загрузчика, поэтому избегайте повторного выполнения сетевой транзакции.

Таким образом, AsyncTaskLoader предотвращает дублирование фоновых потоков и устраняет дублирование активности зомби.

Question

Поскольку Honeycomb и v4 Compatibility Library можно использовать AsyncTaskLoader . Из того, что я понимаю, AsyncTaskLoader может выжить через изменения конфигурации, такие как переходы экрана.

Рекомендуется ли использовать AsyncTaskLoader вместо AsyncTask ? LoaderManager ли LoaderManager изображение?

Но я не нашел хороших примеров того, как правильно использовать AsyncTaskLoader . В документах также нет примеров. Может ли кто-нибудь дать хорошие примеры.




Некоторые отличия, не описанные в других ответах:

При использовании AsyncTaskLoader поверх AsyncTask :

  • AsyncTaskLoader дает нам возможность загружать старые кэшированные данные, пока новые данные не будут возвращены forceLoad()

  • Мы можем установить задержки для AsyncTaskLoader с помощью setUpdateThrottle() которые могут препятствовать последовательным обновлениям клиента (Activity / Fragment)

  • AsyncTaskLoader может быть разделен на несколько фрагментов, если они имеют общую родительскую активность, и если он был запущен из getActivity().getSupportLoaderManager()

  • AsyncTaskLoader уничтожается LoaderManger когда его связанная активность недоступна. в то время как нам нужно вручную уничтожить AsyncTasks, если его активность вызывающего абонента разрушается. Это экономит наше время, начиная писать все поляны. AsyncTaskLoader хорошо работает со своими жизненными циклами.

Таким образом, AsyncTaskLoader лучше, чем AsyncTask.




Related