С библиотекой совместимости я использовал CursorLoader и фрагменты, нацеленные на 2.1.
Загрузчики довольно просты, если у вас есть ContentProvider, поддерживающий их, фрагменты требуют использования FragmentActivity (возможно, и LoaderCursors тоже).1004 * Однако загрузчикам необходим интерфейс LoaderManager.LoaderCallbacks.
У загрузчиков есть жизненный цикл, у меня нет кода под рукой, но он такой.
LoaderManager.InitLoader(USER_SPECIFIED_ID_OF_LOADER);
---- Который в конечном итоге вызывает --->
Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(getActivity(), baseUri,
CONTACTS_SUMMARY_PROJECTION, select, null,
Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
}
Именно здесь ваш Loader выполняет загрузчик, я использовал только CursorLoader в своем коде, поэтому я не знаю больше о мельчайших деталях.
Когда загрузчик завершает работу, вызывается последний обратный вызов.
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
//Do whatever you want with your cursor here.
}
При этом они работают довольно хорошо и выполняют свою работу, как и ожидалось, двумя большими пальцами вверх.
* Редактировать:Существует также onLoaderRestarted (), который, вероятно, вызывается при перезапуске загрузчика, не совсем точно, когда он вызывается.