【Android】ContentProvider操作数据

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

1、Context提供了如下方法来获取ContentResolver对象。getContentResolver()一旦在程序中获得ContentResolver对象之后,接下来就可以调用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操作数据

2、ContentProvider与ContentResolver的关系

【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操作数据

4、使用ContentProvider的步骤实现ContentProvider的子类,实现query(),insert(),update()和delete()等方法。

【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等
  • 怎么破解王者荣耀昵称长度限制
  • 热门搜索
    抗美援朝手抄报 扫黄打非手抄报 汉字手抄报图片 清明节手抄报内容简短 六一手抄报内容 致敬英雄手抄报图片 关于端午节的手抄报 圣诞节手抄报 消防手抄报大全 关于读书的手抄报图片