CursorLoader, получить URI для локальной базы данных

Я новичок программист для Android, и недавно я познакомился с учебником, в котором показано, как создать локальную базу данных SQLite, а затем получить доступ к базе данных с помощью SQLiteDatabase.rawQuery для возврата курсора. Я хотел бы изменить мое приложение, чтобы использовать CursorLoader, который, по-видимому, лучший способ доступа к базе данных. Моя проблема заключается в том, что конструктор CursorLoader ожидает предоставления URI. Я просто ввожу «файл: /// [путь к db]»? Кажется немного грязным.

Solutions Collecting From Web of "CursorLoader, получить URI для локальной базы данных"

Причина, по которой загрузчик курсора принимает URI, заключается в том, что он ожидает запроса контент-провайдера, а не сырой базы данных.

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

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

Вот несколько руководств о том, как создать поставщика контента

http://developer.android.com/guide/topics/providers/content-provider-creating.html

http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/

Если вы решите не создавать ContentProvider, вы можете расширить AsyncTaskLoader или загрузчик курсора напрямую, чтобы запросить данные так, как вы хотите.

Взгляните на библиотеку LoaderEx CommonsWare . Он позволяет использовать Loader с локальной SQLiteDatabase , поэтому вам не нужно беспокоиться о создании собственного ContentProvider .