我正在研究android db,遇到了2种工作方法:
1)仅使用SqliteOpenHelper
2)使用ContentProvider
和SqliteOpenHelper
使用一个或另一个有什么好处吗?
最佳答案
这个问题主要是基于意见的,但可以总结一下:
1)仅使用SqliteOpenHelper
您将必须自己管理数据库访问。提供用于CRUD访问的方法并具有完全控制权。可以并且仍然应该使用SqliteOpenHelper
处理更新。
2)使用ContentProvider和SqliteOpenHelper
这将使您可以通过框架方法访问数据库。它使您可以立即使用CursorLoader
(更改时自动刷新),SyncAdapter
(将更改同步到服务器)和其他一些功能。由于您无权直接访问数据库,因此必须使用URI
路径来标识元素并发布查询。
此选项记录更佳,因为它是官方的android api,尽管您必须先阅读一些内容才能最佳使用它。
同样值得注意的是,如果其他开发人员查看您的代码,他们可能会知道如何使用您的ContentProvider
(如果保持一致),但是他们将不得不阅读源代码(或文档)以了解如何使用您的自定义实现。
关于android - 具有ContentProvider或SQLiteOpenHelper的Android Sqlite,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35681269/