Класс DbAdapter против ContentProvider Какая разница в Android? - PullRequest
1 голос
/ 05 июня 2011

Я пытаюсь выяснить, в чем разница между настройкой базы данных с помощью класса DbAdapter или настройкой всего в Content Provider?

Правда ли, что класс DbAdapter является скорее временным временным ограничителем, в то время как ContentProvider - это долгосрочное решение, которое предоставляет больше функциональных возможностей, таких как возможности поиска и прочее?

Можно ли создать экземпляр класса Dbadapter в ContentProvider?так что я действительно могу просто звонить и управлять всем из БД прямо из класса Provider?

1 Ответ

1 голос
/ 05 июня 2011

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

При использовании ContentProvider:

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

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

Вот хороший учебник: http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/

...