Подтвердить что ты не робот

Разница между адаптером и загрузчиком в Android

Я хочу знать, в чем разница между адаптером и загрузчиком в Android. Я уже посмотрел документацию, но не могу понять разницу между ними. Любая помощь будет оценена по достоинству. Благодарю!

4b9b3361

Ответ 1

Оба обеспечивают абстракцию доступа к данным, но Loader выполняет запрос в фоновом режиме, тогда как Adapter выполняет текущий поток (предположительно UI).

Например, простой способ доступа к Контент-провайдеру - это SimpleCursorAdapter. Но запрос больших объемов данных непосредственно из Activity может привести к его блокировке, что приведет к сообщению "Приложение не отвечает". Даже если это не так, пользователи будут видеть раздражающую задержку в пользовательском интерфейсе. Чтобы избежать этих проблем, вы должны инициировать запрос в отдельном потоке, дождаться его завершения и затем отобразить результаты. Это то, что сделает CursorLoader.

При этом они иногда используются в сочетании друг с другом. В этом примере данные сначала загружаются с помощью CursorLoader, а затем этот курсор обновляется в адаптере адаптера для отображения.

Ответ 2

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

Адаптер: -
Объект Adapter действует как мост между AdapterView и базовыми данными для этого представления. Адаптер обеспечивает доступ к элементам данных. Адаптер также отвечает за создание представления для каждого элемента в наборе данных. Вот вам одно видео. Посмотрите это видео, тогда вы понимаете работу, преимущество адаптера.
Вот один из лучших уроков адаптера.

Ответ 3

Я думаю, что эти два класса работают на другом уровне абстракции: в то время как Адаптер - это интерфейс, который должен быть реализован классом, обеспечивающим фактические данные, Loader содержит функциональные возможности для асинхронной загрузки данных на основе Cursor.

Я думаю, вы можете подумать о загрузчике как адаптере, а также о запуске AsyncTask.

Также имейте в виду, что загрузчик доступен только с Android 3.0.