Нужен URI для использования в CursorLoader с базой данных SQLite

Конструктору CursorLoader нужен URI, но я не знаю, как его использовать. Из того, что я прочитал, мне нужен ContentProvider. Но все, что я хочу сделать, это получить доступ к моей базе данных SQLite. Может ли кто-нибудь показать мне, как для этой цели создать URI с ContentProvider? Документация кажется очень сложной и показывает примеры, не связанные с базой данных sqlite.


person David Velasquez    schedule 26.04.2016    source источник
comment
Но все, что я хочу сделать, это получить доступ к моей базе данных SQLite — вам не нужно использовать CursorLoader для доступа к базе данных SQLite.   -  person CommonsWare    schedule 27.04.2016
comment
@CommonsWare Но если я использую базу данных для возврата результатов в AutoCompleteTextView, разве мне не нужен CursorLoader для загрузки результатов Cursor?   -  person David Velasquez    schedule 27.04.2016
comment
Нет. Вы можете позвонить query() или rawQuery() со своего SQLiteDatabase. Просто сделайте это в фоновом потоке и подумайте об изменениях конфигурации. Используете ли вы свой собственный AsyncTaskLoader, или сохраненный фрагмент, или одноэлементный управляемый кеш, или что-то еще, решать вам.   -  person CommonsWare    schedule 27.04.2016
comment
@CommonsWare Если бы вы могли указать мне на учебник, делающий именно это, или дать мне скелетную структуру кода, как это настроить, это было бы действительно очень полезно. Я впервые использую эти классы, поэтому я не уверен, как правильно их настроить. Пока что у меня есть настройка моего вспомогательного класса БД для доступа к БД, и я использую сохраненный фрагмент для всего представления.   -  person David Velasquez    schedule 27.04.2016
comment
github.com/commonsguy/cw-omnibus/tree/master/Database/ — мой базовый пример из моей книги о доступе к базе данных SQLite.   -  person CommonsWare    schedule 27.04.2016


Ответы (1)


Вместо этого вы можете использовать AsyncTaskLoader. Затем вы можете выполнить запрос к базе данных в методе LoadInBackground.

person Mina Wissa    schedule 26.04.2016
comment
Я буду запрашивать мою базу данных для использования в AutoCompleteTextView, поэтому мне не нужен Cursor для чтения данных из результатов и, в свою очередь, нужен CursorLoader? - person David Velasquez; 27.04.2016
comment
AutoCompleteTextView также может считывать данные из ArrayAdapter, поэтому вам не нужно использовать CursorAdapter или CursorLoader. - person Mina Wissa; 27.04.2016