1.ContentProvider是什么?
2.相关API
//provider对象创建后调用(应用安装成功或手机启动完成)
publicabstract boolean onCreate();
//查询表数据
Cursorquery(Uri uri,String[] projection,Stringselection, String[] selectionArgs)
//插入表数据
Uri insert(Uri uri, ContentValuesvalues);
//删除表数据
intdelete(Uri uri,String selection, String[] selectionArgs)
//更新表数据
update(Uriuri, ContentValuesvalues, String selection,String[]selectionArgs);
//得到它的对象
context.getContentResolver()
//调用provider进行数据库CRUD操作
Insert()、delete()、update()、query()
//注册uri的监听
registerContentObserver(Uriuri, booleannotify,ContentObserverobserver)
//解注册uri的监听
unregisterContentObserver(ContentObserverobserver)
//通知监听器
notifyChange(Uriuri, ContentObserverobserver)
//得到其对象
Uristatic parse(String uriString)
A :是一个前缀,表示是由ContentProvider提供,固定不变
B :authority, 标识是哪个Provider,不同的Provider此部分必须不同。
C :对应于哪张表 student
D :id值,对应表中的哪条记录
//添加一个合法的URI
void addURI(Stringauthority, String path, intcode)
//匹配指定的uri, 返回匹配码
intmatch(Uri uri)
//解析uri, 得到其中的id
long parseId(UricontentUri)
//添加id到指定的uri中
Uri withAppendedId(UricontentUri,long id)
3.编写ContentProvider的基本步骤
classStudentContentProviderextends ContentProvider{
//实现inert、delete、update和query等方法
}
<provider
android:name=".StudentContentProvider"
android:authorities="com.atguigu.provider.studentprovider"
android:exported="true"/>
context.getContentResolver()
inert()、delete()、update()和query()
系统自动找到匹配的ContentProvider对象来操作数据
registerContentObserver(Uriuri, booleannotify,ContentObserverobserver)
注册uri的监听
unregisterContentObserver(ContentObserverobserver)
解注册uri的监听
notifyChange(Uriuri, ContentObserverobserver)
通知监听器