我想知道访问我的应用程序数据库的最佳方法是哪种:使用内容提供程序,或手动实现我的DAO? 根据我最近的调查,似乎内容提供商,即使是内部应用程序,也是可取的,但我不确切知道每种方法的缺点是什么。 你能就此提出一些反馈意见吗?
答案 0 :(得分:13)
如果您担心关闭或锁定数据库,我更喜欢使用ContentProvider 。 查看Simple Content Provider for db operations
答案 1 :(得分:9)
来自Google Docs。
开始构建之前
在开始构建提供程序之前,请执行以下操作: 以下:
决定是否需要内容提供商 您需要构建内容 提供商,如果您想提供以下一项或多项功能:
- 您希望向其他应用程序提供复杂的数据或文件。
- 您希望允许用户将应用中的复杂数据复制到其他应用中。
- 您希望使用搜索框架提供自定义搜索建议。
如果使用的话,您不需要提供商使用SQLite数据库 完全在你自己的应用程序中。
但是在阅读本文和其他一些帖子时我感到有些困惑。如果只是由您自己的应用程序使用内容提供程序事件,它是否有意义?
答案 2 :(得分:5)
来自ContentProvider文档:
内容提供商是Android应用程序的主要构建块之一,为应用程序提供内容。它们封装数据并通过单个ContentResolver接口将其提供给应用程序。只有在需要在多个应用程序之间共享数据时,才需要内容提供程序。例如,联系人数据由多个应用程序使用,并且必须存储在内容提供商中。如果您不需要在多个应用程序之间共享数据,则可以直接通过SQLiteDatabase使用数据库。
在我看来,如果您不打算与其他应用程序共享数据,则不需要内容提供商。
链接:http://developer.android.com/reference/android/content/ContentProvider.html