Android 内容提供者

2018-02-20 19:39 更新

Android使用内容提供者将数据抽象为服务。

内容提供者在应用程序之间的共享数据方面发挥着重要作用。

内容提供者使数据源看起来像启用REST的数据提供者,例如网站。

要从内容提供者检索数据或将数据保存到内容提供者,你将需要使用一组类似REST的URI。

例子

例如,如果你要从内容提供程序检索一组书籍(即书籍数据库的封装),需要使用如下所示的URI:

content://com.android.book.BookProvider/books

要从图书数据库中检索特定图书,你需要使用如下所示的URI:

content://com.android.book.BookProvider/books/101

设备上的任何应用程序都可以使用这些URI访问和操作数据。

内容提供者的架构

设备上的每个内容提供者都像网站一样注册一个称为authority的字符串。

authority字符串构成一组URI的基础,这些内容提供者可以提供的。

此authority注册在 AndroidManifest.xml 文件中定义。

以下是如何在 AndroidManifest.xml 中注册提供者的两个示例:

<provider android:name="SomeProvider"
          android:authorities="com.your-company.SomeProvider" />

<provider android:name="NotePadProvider"
          android:authorities="com.google.provider.NotePad"/>

authority类似于该内容提供者的域名。

内容提供者,如网站,有一个作为起始URL的基本域名。

鉴于上述的authority注册,这些提供程序将使用以该权限前缀开头的URL:

content://com.your-company.SomeProvider/
content://com.google.provider.NotePad/

Android提供的提供者可能没有完全限定的权限名称。

例如,contacts而不是 com.google.android.contacts

内容提供者与其他

仅当你想要在外部或应用程序之间共享数据时,才需要内容提供者抽象化。

对于内部数据访问,应用程序可以使用以下内容:

  • 首选项:你可以持久存储应用程序首选项的一组key/value对
  • 文件:应用程序的内部文件
  • SQLite:SQLite数据库
  • 网络:通过Internet的HTTP服务检索或存储数据
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号