Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
同一应用程序中的Android内容提供商_Android_Database_Design Patterns_Android Contentprovider - Fatal编程技术网

同一应用程序中的Android内容提供商

同一应用程序中的Android内容提供商,android,database,design-patterns,android-contentprovider,Android,Database,Design Patterns,Android Contentprovider,我有多个活动(在同一个应用程序中)需要访问数据库。实现这一点的最佳模式是什么?即使所有活动都属于同一个应用程序,我是否需要内容提供商 哪个活动应负责打开和关闭数据库 没有必要。如果您想让外部应用程序访问您的数据,您只需创建一个内容提供者。您的两个选项是内容提供者或仅使用您自己的数据库抽象层。如前所述,如果您需要其他应用程序来共享您的数据,或者需要连接到Android的其他部分(如快速搜索框架),那么内容提供商是一种更好的方式。它不应该绑定到一个活动中,而应该是一个单独的类,您可以导入并使用它 O

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


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

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

您的两个选项是内容提供者或仅使用您自己的数据库抽象层。如前所述,如果您需要其他应用程序来共享您的数据,或者需要连接到Android的其他部分(如快速搜索框架),那么内容提供商是一种更好的方式。它不应该绑定到一个活动中,而应该是一个单独的类,您可以导入并使用它


OReilly Android编程书中有一章介绍了这两种方法,这本书读得很好。

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


我想做相反的事情。我不想允许访问我的内容提供商,除了/在我自己的应用程序之外。我将只使用它的搜索建议。你知道我怎么做吗?谢谢。您可以为内容提供商指定权限,请参阅:我们也可以将内容提供商用于内部应用。请仔细阅读我的评论。