【Android】ContentProvider操作数据

 时间:2024-10-14 23:23:07

1、Context提供了如下方法来获取ContentResolver对象。getContentResolver()一旦在程序中获得Conten墉掠载牿tResolver对象之后,接下来就可以调用ContentResolver的如下方法来操作数据。insert(Uri uri,ContentValues values):向Uri对应的ContentProvider中插入values对应数据。delete(Uri uri,String where,String[] selectionArgs):删除Uri对应的ContentProvider中where提交匹配的数据。update(Uri uri,ContentValues values,String where,String[] selectionArgs):更新Uri对应的ContentProvider中的where提交匹配的数据。query(Uri Uri,String[] projection,String selection,String[] selectionArgs,String sortOrder):查询Uri对应的ContentProvider中where提交匹配的数据。

【Android】ContentProvider操作数据

3、通过这个图可以看出,以指定Uri为标识,ContentResolver可以实现“间接调用”ContentProvider的CRUD方法:当A应用调用ContentResolver的insert()方法时,实际上相当于调用该Uri对应的ContentProvider(该ContentProvider属于B应用)的insert()方法。当A应用调用ContentResolver的update()方法时,实际上相当于调用了该Uri对应的ContentProvider(该ContentProvider属于B应用)的update()方法。当A应用调用ContentResolver的delete()方法时,实际上相当于调用了该Uri对应的ContentProvider(该ContentProvider属于B应用)的delete()方法。当A应用调用ContentResolver的query()方法时,实际上相当于调用了该Uri对应的ContentProvider(该ContentProvider属于B应用)的query方法。通过上面这种关系,即可实现让A应用访问。使用B应用底层的数据。

【Android】ContentProvider操作数据

5、在AndroidManifest.xml文件中注册该ContentProvider,指定android:authorities属性。

【Android】ContentProvider操作数据

6、<!-- 注册一个ContentProvider --><providerandroid:exported="true"android:name=".FirstProvider"android:authorities="org.test.providers.firstprovider"></provider>name:指定该ContentProvider的实现类的类名。authorities:指定该ContentProvider对应的Uri(相当于该ContentProvider分配一个域名)。android:exported:指定该ContentProvider是否准许其他应用调用。如果将该属性设置为false,那么该ContentProvider将不准许其他应用调用。

  • 农家小院家常菜铁锅土豆炖牛肉
  • 如何下载麦田在线?
  • 茂名怎么办理宽带?100M光纤、50M、20M等
  • 怎么破解王者荣耀昵称长度限制
  • 热门搜索
    石家庄 旅游 河南旅游资讯网 三明旅游 北京旅游计划 上海旅游地图 丽江旅游局 太姥山旅游 聊城旅游景点大全 旅游景点网站 亚丁稻城旅游攻略