Android 带有 ContentProvider 或 SQLiteOpenHelper 的 Sqlite

Android Sqlite with ContentProvider or SQLiteOpenHelper

我正在使用 android db 并遇到了 2 种工作方法:

1) 仅使用 SqliteOpenHelper

2) 使用 ContentProviderSqliteOpenHelper

使用一个或另一个有什么优势吗?

这个问题主要是基于意见,但总结一下:

1) Using just SqliteOpenHelper

您必须自己管理数据库访问。提供 CRUD 访问的方法并具有完全控制权。更新可以而且仍然应该使用 SqliteOpenHelper.

处理

2) Using ContentProvider and SqliteOpenHelper

这将使您能够通过框架方法访问您的数据库。它将使您能够使用 CursorLoader(更改时自动刷新)、SyncAdapter(将更改同步到服务器)以及一些开箱即用的其他功能。您将不得不使用 URI 路径来识别您的元素和 post 查询,因为您没有 直接 访问数据库的权限。
此选项有更好的文档记录,因为它是官方 android api,尽管您必须先阅读一些内容才能以最佳方式使用它。


同样值得注意的是,如果其他开发人员看过您的代码,他们可能会知道如何使用您的 ContentProvider(如果您保持一致),但他们必须阅读您的源代码(或文档)以了解如何使用您的自定义实现。