学习Android开发6:Content Provider

Content Provider组件可支持在多个应用中存储和读取数据。应用程序能够将它们的数据保存到文件中、SQL数据库中,甚至是任何有效的设备中。当你想将你的应用数据与其它的应用共享时,Content  Provider将会很有用。

学习Android开发6:Content Provider

Content provider允许你把数据集中到一个地方,这样很多不同应用都可以访问。content provider和数据库非常类似-你可以查询编辑内容,它有 insert()、update()、delete() 和 query() 方法。在大多数情况下数据都保存在SQlite数据库中。

你需要通过继承ContentProvider类实现:

Content URI

为了查询content provider你要使用如下URI格式:

  • prefix:固定为 content://
  • authority:指定content provider的名字,例如,contacts, browser。对于第三方content provider,需要指定全称,例如,com.topspeedsnail.statusprovider
  • data_type:数据类型。例如你要从联系人content provider获得联系人,URL的样子 content://contacts/people
  • id:指定记录ID。例如你要获得第5号联系人,URI:content://contacts/people/5

创建 Content Provider

创建content provider的步骤:

  1. 首先你需要创建一个类,这个类继承自 ContentProvider
  2. 定义URI地址,用来访问content
  3. 创建数据库保存content
  4. 实现Content Provider查询
  5. 在AndroidManifest.xml 中使用<provider>标签注册

下面是你要在类中override的方法:

  • onCreate()provider启动时调用的方法
  • query():接收客户端的请求,结果以Cursor对象返回
  • insert():在content provider中插入一条记录
  • delete()content provider中删除一条记录
  • update()content provider中更新一条记录
  • getType():返回数据的MIME类型

示例程序

下面我们来创建自己的ContentProvider。

首先使用Android Studio 创建一个新项目,参考 Hello World

制作基本的界面(activity_main.xml):

学习Android开发6:Content Provider

MainActivity:

创建一个文件 AccountProvider.java:

在 AndroidManifest.xml 添加 provider 标签:

编译运行:

学习Android开发6:Content Provider

添加几个名字,然后点击查询:

学习Android开发6:Content Provider

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注