zoukankan      html  css  js  c++  java
  • 开发ContentProvider的步骤

      开发ContentProvider的步骤如下:

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

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

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

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

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

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

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

     1 //实现query方法
     2 public Cursor query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder)
     3 {
     4     Cursor cursor=null;
     5     //根据Uri获取返回码
     6     switch(UriMatcher.match(uri))
     7       {
     8         case 1:
     9         ......
    10         break;
    11         case 2:
    12         ......
    13         break;
    14         case 3:
    15         ......
    16         break;
    17         default:
    18         throw new IllegalArgumentException("<"+uri+">格式不正确。");
    19     }
    20     return cursor;
    21 }

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

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

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

  • 相关阅读:
    Vagrant安装virtualbox
    SQLSERVER排查CPU占用高的情况
    删除重复记录,只留一条
    ASCII码对应表chr(9)、chr(10)、chr(13)、chr(32)、chr(34)、chr(39)、……
    手机和PC端的录屏软件
    2017年初面试总结
    Python面向对象
    Python字体颜色
    Python第二模块总结
    Fiddler使用教程(转)
  • 原文地址:https://www.cnblogs.com/dazuihou/p/3600317.html
Copyright © 2011-2022 走看看