2010-06-04 3 views
2

мое приложение для Android работает с большой базой данных времени прохождения шины, и мы хотели бы, чтобы другие приложения могли отображать время прохождения сертификатов. Мы хотели бы использовать контент-провайдера для этого. В большинстве случаев речь идет об использовании базы данных SQL, но ... мы используем какой-то пользовательский текстовый файл. Мне было интересно, что было бы лучшим способом сделать это. Я думал, что могу использовать Content Provider и реализовать интерфейс Cursor на пользовательском объекте, который я бы вручную заполнил своими текстовыми данными. Возможно ли это? У кого-то есть лучшая идея (исключая, конечно, переход на SQL lite)?Android-провайдер контента без SQL

Заранее спасибо.

ответ

3

Возможно ли это?

Несомненно. ConetntProvider - это, по сути, фасад, не продиктованный всей внутренней реализацией.

Ключом будет документация. Если вы не используете SQLite в качестве хранилища данных, скорее всего, вы не будете поддерживать полные статьи WHERE для query() и т. Д. Следовательно, вам нужно убедиться, что независимо от того, что вы поддерживаете для статей WHERE, доступных столбцов и т. П., Вы документируете это хорошо, поэтому разработчики, интегрирующиеся с вашим провайдером контента, знают, как это сделать. В противном случае они могут сделать ошибочные предположения.

+0

Даже если я взломаю URI, как я могу уклониться от курсора? (с использованием новой базы данных, Realm) – Dexter

+0

@Dexter: Вы не можете «уклониться от курсора». Царство не предназначено для поддержки ContentProvider. Вам нужно будет преобразовать результаты Realm в «MatrixCursor» или какую-либо другую реализацию «Cursor». – CommonsWare

+0

Моим главным мотивом является использование адаптеров CursorLoader и sync. Должен ли я реализовать какую-то форму курсора или я должен полностью пропустить контент-провайдера и создать собственный код. Я знаю его значение qstn, но что бы вы сделали в моей ситуации. Мои потребности в синхронизации довольно простые. – Dexter

Смежные вопросы