【问题标题】:Android Content Provider inside the same application同一应用程序中的 Android 内容提供程序
【发布时间】:2010-07-13 17:57:56
【问题描述】:

我有多个活动(在同一个应用程序内)需要访问数据库。实现这一点的最佳模式是什么?即使所有活动都属于同一个应用程序,我是否还需要内容提供者?

哪个活动应该负责打开和关闭数据库?

【问题讨论】:

    标签: android database design-patterns android-contentprovider


    【解决方案1】:

    您的两个选项是内容提供程序或仅使用您自己的数据库抽象层。正如所指出的,如果您需要其他应用程序来共享您的数据,或者如果您需要连接到 Android 的其他部分(如快速搜索框架),则内容提供程序是一种更好的方式。它不应该被绑定到一个 Activity - 应该只是一个你导入和使用的单独的类。

    OReilly Android 编程书有一章说明了这两种方法,值得一读。

    【讨论】:

    • 我想做相反的事情。除了/在我自己的应用程序之外,我不想允许访问我的内容提供者。我只会将它用于搜索建议。你知道我该怎么做吗?谢谢。
    • 您可以为内容提供者指定权限,参见:developer.android.com/reference/android/…
    【解决方案2】:

    没有必要。如果您希望某些外部应用程序访问您的数据,您只需创建一个内容提供程序。

    【讨论】:

    • 我们也可以将 Content Provider 用于内部应用程序。请仔细阅读我的评论。
    【解决方案3】:

    内容提供者提供了一种结构化的存储机制,该机制可以限制在您自己的应用程序中,也可以导出以允许其他应用程序访问。如果您不打算为其他应用程序提供对您的 ContentProvider 的访问权限,请在应用程序清单中将它们标记为 android:exported=false。否则,将 android:exported 属性设置为 true 以允许其他应用访问存储的数据。

    https://developer.android.com/training/articles/security-tips

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-27
      • 1970-01-01
      相关资源
      最近更新 更多