Android基本功:ContentProvider简介

一、ContentProvider简介 

  • 实现了在不同应用程序之间共享数据的需求 

  • 避免了不同应用程序之间不同的数据记录方式的差别 

  • 四大组件之一 

  • 无论应用程序是否启动,其它应用程序都可以通过接口来操作该应用程序的内部数据,包括增加数据、删除数据、修改数据、查询数据等 

  • 一般来说ContentProvider是单例模式的,当多个应用程序通过ContentResolver操作ContentProvider的数据时,ContentResolver调用的数据将会委托给同一个ContentProvider处理; 

 

二、开发ContentProvider的步骤 

  1. 开发一个ContentProvider子类,该子类需要实现query(),insert(),update()和delete()方法 

    • public boolean onCreate():在ContentProvider创建后会被调用,当其它应用程序第一次访问ContentProvider的时候,该ContentProvider会被创建出来; 

    • public Uri insert(Uri uri,ContentValues values):根据Uri插入vlues对应的数据 

    • public int delete(Uri uri,String selection,String[] selectionArgs):根据Uri删除select条件所匹配的全记录 

    • public int update(Uri uri,ContentValues values,String selection,String[] selectionArgs):根据Uri修改的select条件所匹配的全部记录 

    • public Cursor query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder):根据Uri查询出select条件所匹配的全部记录 

    • public String getType(Uri uri):返回当前Uri所代表的MIME类型 

      • 如果Uri对应的数据包含多条记录,则MIME类型字符串应该是以vnd.android.coursor.dir/开头 

      • 如果Uri对应的数据只包含一条记录,那么返回的MIME数据类型应该以vnd.anroid.cursor.item/开头 

  2. 在AndroidMainfest.xml文件注册该ContentProvider,指定android:authourities属性;

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。