Реализация AsyncQueryHandler с собственной базой данных SQLite?

#android #sqlite #android-asynctask

#Android #sqlite #android-asynctask

Вопрос:

У меня возникли некоторые проблемы с реализацией AsyncQueryHandler в моем приложении. Я расширяю ExpandableListView, и у меня есть внутренняя база данных SQLite. Я хотел бы выполнять свои запросы, используя мой собственный подкласс AsyncQueryHandler. Я полагаю, проблема проста… Как мне предоставить объект Uri, требуемый в методах startQuery / startInsert / startDelete /startUpdate из класса AsyncQueryHandler? Я просто не знаю, как выполнить запрос к моей внутренней базе данных SQLite с помощью этого метода, поскольку для этого требуется объект Uri, который я понятия не имею, откуда получить. Итак, как мне создать объект Uri, необходимый для метода? Я просмотрел примеры API ExpandableListView2, но я не смог полностью понять содержащийся в нем код. Я не знаю, соответствует ли это информации, но я не расширяю ContentProvider. Кроме того, если вы считаете, что AsyncQueryHelper — не лучший выбор, должен ли я выбрать AsyncTask? Если да, не могли бы вы предоставить какой-нибудь пример кода? Я предполагаю, что запрос отправляется в doInBackgroud (), а setGroupCursor() и setChilderCursor() отправляются в onPostExecute (), но я жду ваших ответов. Заранее спасибо.

Ответ №1:

Вы, вероятно, хотите пока пропустить асинхронную обработку ContentResolvers и вместо этого использовать простое расширение AsyncTask для связи с вашей базой данных. Взгляните на эти примеры:

пример1 и пример2