首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

ContentProvider的运用

2012-07-25 
ContentProvider的使用第一步:在AndroidManifest.xml中添加??provider android:name.MyContentProvider

ContentProvider的使用

第一步:在AndroidManifest.xml中添加

?

?<provider android:name=".MyContentProvider" android:authorities="cn.edu.mytest"></provider>

?

第二步:继承ContentProvider

?

?

public void accessContentProvider()//该方法可以在其他应用程序中调用{Uri uri=Uri.parse("content://cn.edu.mytest/person");ContentResolver reslover=this.getContext().getContentResolver();ContentValues values=new ContentValues();values.put("name","zhangsan");values.put("time", "2012");reslover.insert(uri, values);//会调用ContentProvider中的insert()}public void accessContentProviderDelete()//该方法可以在其他应用程序中调用{Uri uri=Uri.parse("content://cn.edu.mytest/person/1");ContentResolver reslover=this.getContext().getContentResolver();reslover.delete(uri,null,null);}
?

?

?

?

?

?

?

?

CotentProvider:可以把应用中的xml/txt/db/数据对外共享

?

使用ContentProvider可以统一数据的访问方式

?

写一个PersonProvider类继承ContentProvider

在配置清单中添加配置信息

<provider android:name=".PersonProvider"?

?

android:authorities="cn.edu.personprovide(标志)>

?

?

Uri代表了要操作的数据,Uri主要包含了两部分信息:1、需要操作的ContentProvider,

2、对ContentProvider中的什么数据进行操作 ??

括号代表注释

content:(这个是schema)//cn.edu.personprovide(要操作的主机名或者

?

authority)/person/10(person/1是路径,1是ID)

ContentProvider的schema已经由Android所规定,schema为:content//主机名(或叫

?

Authority)用于唯一标志这个Contentprovider,外部调用者可以根据这个标志来找到

?

它,路径可以用来表示我们要操作的数据,路径构建应根据业务而定

?

?

?

?

监听ContentProvider中数据的变化

A应用向ContentProvider中添加了一条数据

ContentProvidr发出数据变化通知B应用

在继承ContentProvider的类得inset方法中添加

this.getContext().getContentResolver().notifyChange(uri, null);//发出数据变

?

化通知

?

?

B应用要处于运行状态

在B应用的Activity的中onCreate方法中

this.getContentResolver().registerContentObserver(Uri,true,new?

?

PersonContent());

?

private class PersonContentObserver extedns ContentObserver{

在onChange方法中()

{

Uri uri=Uri.prase("content://cn.edu.test/product");

getContentResolver.qeruy(uri,null,null,"personid desc limit 1");

}

}

热点排行