我工作围绕与Android db和满足工作的2种方法:的Android SQLite的用的ContentProvider或SQLiteOpenHelper
1)只使用SqliteOpenHelper
2)使用ContentProvider
和SqliteOpenHelper
它有什么优势使用一个还是其他?
我工作围绕与Android db和满足工作的2种方法:的Android SQLite的用的ContentProvider或SQLiteOpenHelper
1)只使用SqliteOpenHelper
2)使用ContentProvider
和SqliteOpenHelper
它有什么优势使用一个还是其他?
这个问题主要是根据意见,但概括起来:
1)只使用SqliteOpenHelper
你必须自己管理数据库访问。提供CRUD访问方法并拥有完全控制权。更新可以并且仍然应该使用SqliteOpenHelper
来处理。
2)使用的ContentProvider和SqliteOpenHelper
这会给你通过框架方法访问你的数据库。它将使您能够使用CursorLoader
(更改时自动刷新),SyncAdapter
(同步更改为服务器)以及一些其他功能。由于您没有直接访问数据库,您将不得不使用URI
路径来识别您的元素和发布查询。
这个选项有更好的文档记录,因为它是官方的android api,尽管在你最好地使用它之前你必须做一些阅读。
另外值得一提的,如果一些其他开发人员看你的代码,他们可能会知道如何使用您的ContentProvider
(如果你保持一致),但他们将不得不读入你的源代码(或文档)了解如何使用您的自定义实现。
要确定,你是否说只用SqliteOpenHelper不可能/很难使用SyncAdapter? – Nazerke
@Nazerke SyncAdapter作为框架的一部分,旨在与内容提供商一起使用,我相信大多数教程也会使用它们。显然你不必使用ContentProvider,但我自己讨厌与框架对抗。 –