文档章节

android Content Provider

feng_blog
 feng_blog
发布于 2015/08/31 16:53
字数 461
阅读 19
收藏 0

内容提供者即Content Provider,Content Provider提供了一个接口用来共享自己的数据,包括自己的私有数据。其他程序通过Content Resolve来使用这些数据。

当应用需要通过ContentProvider对外共享数据时,第一步需要创建一个类继承ContentProvider并重写下面方法:

public class PersonContentProvider extends ContentProvider{

      public boolean onCreate()

      public Uri insert(Uri uri, ContentValues values)

      public int delete(Uri uri, String selection,String[] selectionArgs)

      public int update(Uri uri, ContentValues values, Stringselection, String[] selectionArgs)

     public Cursor query(Uri uri, String[] projection, Stringselection, String[] selectionArgs, String sortOrder)

     public String getType(Uri uri)

}

第二步需要在AndroidManifest.xml使用<provider>对该Content Provider进行配置,为了能让其他应用找到该Content Provider , Content Provider采用了authorities(主机名/域名)对它进行唯一标识,内容可以设置任意字符,为了使用方便,一般格式为:com.xxx.xxx.YYY(YY为自己设置的ContentProvider名称),以后其他程序的Content Resolve就通过authorities去访问这个程序的数据,name的含义与配置Activity时的含义一样,由于指定创建的继承ContentProvider类的完整类名:

<manifest .... >

   <application android:icon="@drawable/icon"android:label="@string/app_name">

       <providerandroid:name=".PersonContentProvider"android:authorities="cn.itcast.providers.personprovider"/>

   </application>

</manifest>

我们执行完第二步的在AndroidManifest.xml中注册的操作后,开始书写第一步中我们创建的类(继承自ContentProvider类)的具体代码了:

 

 

比如其他程序要通过ContentProvider执行该程序数据库的查询(query)操作,我们则要在该程序中覆写接下来的query()方法,见下图:


接下来覆写query()方法:


之后就可以在其他应用程序中通过ContentResolve来对该程序中数据库进行查询操作了:


这是查询操作,“增”、“删”、“改”的代码就可以仿照书写了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

© 著作权归作者所有

feng_blog

feng_blog

粉丝 120
博文 130
码字总数 105422
作品 3
朝阳
iOS工程师
私信 提问
Android基础之应用程序组件

Android应用程序由若干个不同类型的组件组合而成,每一个组件具有其特定的安全保护设计方式,它们的安全直接影响到应用程序的安全。Android应用程序组件的主要类型有:活动(Activity),服务...

柳哥
2014/11/28
160
0
Android本地的Content Provider

Android本地的Content Provider Android 暴露了许多 Content Provider 来访问本地的数据库。 你可以使用之前描述的技巧来使用本地的 Content Provider 。可变通的地方, android.provider 类...

晨曦之光
2012/03/05
688
0
Android 架构设计的思想

理解好Intent,就可以理解Android哲学(“所有应用生来平等”)的一部分。举个简单的例子,iOS里面应用要集成SNS如 facebook/twitter/sina weibo等,都需要应用自己实现(iOS5也只是集成twitter...

android技术开发
2013/09/11
856
2
创建ContentProvider的详细步骤

Content Provider管理中央存储库的数据的访问, 你在Android程序中实现一个或者多个Provider, 连同清单文件中的元素. 其中一个类实现了ContentProvider子类, 这个子类是你的Provider和其他程序...

等待流星
2014/01/04
2.3K
0
Android应用程序的组成部分

Android应用程序由松散耦合的组件组成,并使用应用程序Manifest绑定到一起:应用程序Manifest描述了每一个组件和它们之间的交互方式,还用于指定应用程序元数据,其硬件和平台要求,外部库以...

柳哥
2014/09/20
496
0

没有更多内容

加载失败,请刷新页面

加载更多

浅谈Visitor访问者模式

一、前言 什么叫访问,如果大家学过数据结构,对于这点就很清晰了,遍历就是访问的一般形式,单独读取一个元素进行相应的处理也叫作访问,读取到想要查看的内容+对其进行处理就叫作访问,那么...

青衣霓裳
26分钟前
6
0
JS内嵌多个页面,页面之间如何更快捷的查找相关联的页面

假设parent为P页面, P页面有两个子页面,分别为B页面和C页面; B页面和C页面分别内嵌一个iframe,分别为:D页面和E页面 现在通过B页面的内嵌页面D的方法refreshEpage(eUrl)来加载内嵌页面E的内容...

文文1
27分钟前
7
0
Hibernate 5 升级后 getProperties 错误

升级到 Hibernate 5 后,提示有错误: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Map; 完整的错误栈为: java.lang.NoSuchMethodError: org.hibernate......

honeymoose
28分钟前
6
0
mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
31分钟前
6
0
Spring中BeanFactory与FactoryBean的区别

在Spring中有BeanFactory和FactoryBean这2个接口,从名字来看很相似,比较容易搞混。 一、BeanFactory BeanFactory是一个接口,它是Spring中工厂的顶层规范,是SpringIoc容器的核心接口,它定...

大王叫下
34分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部