我想知道访问我的应用程序数据库的最佳方法是:使用内容提供程序,还是手动实现我的 DAO?从我最近的调查来看,内容提供者似乎更可取,即使是应用程序内部使用,但我不知道每种方法的缺点是什么。你能对此提供一些反馈吗?
问问题
15478 次
3 回答
13
如果您担心数据库的关闭或锁定,我更喜欢使用ContentProvider 。检查简单内容提供程序以进行数据库操作
于 2012-11-24T16:24:47.767 回答
10
来自谷歌文档。
在你开始建造之前
在开始构建提供程序之前,请执行以下操作:确定您是否需要内容提供者。
如果要提供以下一项或多项功能,则需要构建内容提供程序:
- 您想向其他应用程序提供复杂的数据或文件。
- 您希望允许用户将复杂数据从您的应用程序复制到其他应用程序。
- 您想使用搜索框架提供自定义搜索建议。
如果使用完全在您自己的应用程序中,则不需要提供程序来使用 SQLite数据库。
但是当我阅读这篇文章和其他一些帖子时,我有点困惑。如果内容提供程序事件仅供您自己的应用程序使用,那么使用它是否有意义?
于 2015-04-24T10:52:28.340 回答
5
从 ContentProvider 文档:
内容提供者是 Android 应用程序的主要构建块之一,为应用程序提供内容。它们封装数据并通过单个 ContentResolver 接口将其提供给应用程序。仅当您需要在多个应用程序之间共享数据时才需要内容提供程序。例如,联系人数据由多个应用程序使用,并且必须存储在内容提供程序中。如果您不需要在多个应用程序之间共享数据,您可以通过 SQLiteDatabase 直接使用数据库。
在我看来,如果您不打算与其他应用程序共享数据,则不需要内容提供者。
链接:http: //developer.android.com/reference/android/content/ContentProvider.html
于 2013-01-18T18:54:12.900 回答