android Content Provider
2015-06-19 12:29
561 查看
内容提供者即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来对该程序中数据库进行查询操作了:
这是查询操作,“增”、“删”、“改”的代码就可以仿照书写了。
当应用需要通过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来对该程序中数据库进行查询操作了:
这是查询操作,“增”、“删”、“改”的代码就可以仿照书写了。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories