android Content Provider

简介:

内容提供者即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来对该程序中数据库进行查询操作了:


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

目录
相关文章
|
7月前
|
数据库 Android开发 开发者
Android Studio入门之内容共享ContentProvider讲解以及实现共享数据实战(附源码 超详细必看)
Android Studio入门之内容共享ContentProvider讲解以及实现共享数据实战(附源码 超详细必看)
383 0
|
7月前
|
XML Java Android开发
Android Studio开发之使用内容组件Content获取通讯信息讲解及实战(附源码 包括添加手机联系人和发短信)
Android Studio开发之使用内容组件Content获取通讯信息讲解及实战(附源码 包括添加手机联系人和发短信)
495 0
|
6月前
|
SQL XML Java
Android 这 13 道 ContentProvider 面试题,你都会了吗?
Android 这 13 道 ContentProvider 面试题,你都会了吗?
|
6月前
|
安全 数据库 Android开发
45. 【Android教程】内容提供者 - Content Provider
45. 【Android教程】内容提供者 - Content Provider
85 2
|
7月前
|
存储 安全 Android开发
Android数据存储:请解释ContentProvider是什么,它的主要作用是什么?
ContentProvider是Android的四大组件之一,主要负责结构化数据的管理与共享。它封装数据并提供安全的访问接口,通过URI实现应用间数据的标准化共享。ContentResolver与ContentProvider协作,处理数据的CRUD操作,使得其他应用能方便地调用和操作数据。
64 0
|
7月前
|
数据库 Android开发 Kotlin
android开发,使用kotlin学习ContentProvider
android开发,使用kotlin学习ContentProvider
124 0
|
API 数据库 Android开发
Android ContentProvider内容提供者详解
Android ContentProvider内容提供者详解
87 2
|
Java Android开发
Android 四大组件之ContentProvider 访问通讯录进行增删改查操作
Android 四大组件之ContentProvider 访问通讯录进行增删改查操作
102 0
|
存储 API 数据库
Android:四大组件之 ContentProvider(外共享数据)
数据库在 Android 当中是私有的,不能将数据库设为 WORLD_READABLE,每个数据库都只能允许创建它的包访问。这意味着只有创建这个数据库的应用程序才可访问它。也就是说不能跨越进程和包的边界,直接访问别的应用程序的数据库。那么如何在应用程序间交换数据呢? 如果需要在进程间传递数据,可以使用 ContentProvider 来实现。
362 0
Android:四大组件之 ContentProvider(外共享数据)
|
数据库 Android开发 开发者
Android 开发四大组件(Activity、Service、Broadcast Receiver、Content Provider)
Android 开发四大组件(Activity、Service、Broadcast Receiver、Content Provider)
172 0