开发ContentProvider的步骤

时间:2023-03-10 01:33:24
开发ContentProvider的步骤

  开发ContentProvider的步骤如下:

  1.编写一个类,该类必须继承自ContentProvider。

   2.实现ContentProvider类中的所有抽象方法:insert() delete()  update()  query()和getType()。

  3.定义ContentProvider的URI。URI的形式为content://authority/path/param。一般情况下authority建议使用域名,因为域名是唯一的,不会重复。

  4.在static块中使用UriMatcher对象映射Uri和返回码。代码如下:

 static
{
//开始映射Uri和返回码
UriMatcher=new UriMatcher(UriMatcher.NO_MATCH);
UriMatcher.addURI(AUTHORITY,"cities",1);
UriMatcher.addURI(AUTHORITY,"code/#",2);//#表示任意数字
UriMatcher.addURI(AUTHORITY,"cities_in_province/*",3);//*表示任意字符

  5.根据实际的需要实现相应的方法。例如:我们只想对数据进行只读操作,可以只实现query方法。insert、delete和update方法可以直接抛出异常即可。

  6.实现query、insert、delete和update方法时要使用UriMatcher.match方法将URI映射成第四步与URI对应的代码(addURI方法的最后一个参数值),代码如下:

 //实现query方法
public Cursor query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder)
{
Cursor cursor=null;
//根据Uri获取返回码
switch(UriMatcher.match(uri))
{
case 1:
......
break;
case 2:
......
break;
case 3:
......
break;
default:
throw new IllegalArgumentException("<"+uri+">格式不正确。");
}
return cursor;
}

  7.在AndroidManifest.xml文件中使用<provider>标签注册ContentProvider,代码如下:

<provider android:name="RegionContentProvider"
android:authorities="mobile.android.mydata"/>

  其中,mobile.android.mydata就是在第四步中AUTHORITY的值。