同一应用程序中的Android Content Provider

问题描述 投票:3回答:3

我有一个以上的活动(在同一Application内),需要访问数据库。实现此目的的最佳模式是什么?即使所有活动都属于同一应用程序,我也需要内容提供商吗?

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

android database design-patterns android-contentprovider
3个回答
0
投票

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


3
投票

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

[OReilly Android编程书的一章说明了这两种方法,是一本不错的书。


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.