2016-03-31 3 views
1

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

+0

Загружатель вы можете регистрировать приемники внутри и получать их, они живут до тех пор, пока все еще работает, а асинхронность завершается, когда выполняется его работа. – k0sh

+0

Я спросил о 'AsyncTaskLoader' и' Loader'. Просто я не могу понять, работает ли «Loader» в фоновом режиме, почему нам нужен «AsyncTaskLoader»? –

ответ

3

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

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

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

+0

Спасибо за ответ! Тогда я понял это неправильно в корне) –

Смежные вопросы