В чем разница между AsyncTaskLoader и Loader?

Не могу понять, когда мне нужно использовать Loader и когда AsyncTaskLoader? Я читал документы по этим классам, но плохо это понимал. как я понял Loader позволяет выполнять фоновую работу, поэтому он должен быть запущен в потоке без графического интерфейса, не так ли? Почему AsyncTaskLoader сделать все то же самое? Я уже запутался.
Пожалуйста, кто-нибудь объяснит мне больше деталей.

1 ответ

Решение

Все Loader методы вызываются в основном потоке - Loader не выполняет никакой работы в фоновом потоке. Это позволяет вам использовать любой механизм загрузки, который вы хотите - будь то отдельный поток, обратные вызовы к другому компоненту или что-то еще.

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

В любом случае реальная роль загрузчиков заключается в информировании о жизненном цикле загрузки, как описано в этом сообщении в блоге. Loader s (и, следовательно, AsyncTaskLoaders) пережить изменения конфигурации, такие как поворот экрана. Блог содержит ряд примеров AsyncTaskLoader, используя AsyncTaskLoader с наблюдателем изменений, и Loader который получает данные из другого источника данных с помощью обратных вызовов.

Другие вопросы по тегам