16

我想知道访问我的应用程序数据库的最佳方法是:使用内容提供程序,还是手动实现我的 DAO?从我最近的调查来看,内容提供者似乎更可取,即使是应用程序内部使用,但我不知道每种方法的缺点是什么。你能对此提供一些反馈吗?

4

3 回答 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 回答