ContentProvider 简介

ContentProvider是不同应用程序之间交换数据的标准API,

ContenProvider以某种uri的形式向外提供数据,允许其他应用访问或修改数据;、

其他程序通过ContentResolve根据Uri去访问操作指定的数据

使用时需要在manifest。xml中配置一下

<provider android:name=".DictProvider"

   android:authorities = "org.crazyit.providers.dctprovider" />

name-->指定contentProvider类

authoritied-->指定Contentprovider的路径

public boolean onCreate():该方法在ContentProvider创建后调用,

  当其他应用程序第一次访问ContentProvider时,该ContentProvider会被创建,

  然后立即调用onCreate();

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

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

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

public Cursor query(Uri uri ,string[] projection, String selection,String[] selectionArgs, String sortOrder):根据

    Uri查询条件所匹配的所有记录,其中projection就是一个列名列表,表明秩序阿泽出指定的数据列

public String getType(Uri uri):返回Uri所代表的数据的MIME类型。

    若所对应数据可能包括多条记录那么MIME类型字符串应以vnd.android.cursor.dir/开头;

    不然就以vnd.android.cursor.item/开头

Uri 详解

例: content://org.crazyit.provider.dictprovider/words

conten://t-->这部分是Android规定的,是固定的

org.crazyit.provider.dictprovider-->这部分是ContentProvider的authority。

words--->资源部分,访问不同资源的时候这个部分是动态的

  word/2-->wrod数据中ID为2的记录

  word/2/key-->wrod数据中ID为2的记录的key字段

  word/detail/-->word节点下的detail节点

原文地址:https://www.cnblogs.com/liu666bin/p/2915880.html