• 开发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的值。

  • 相关阅读:
    二进制,八进制,十六进制,十进制之间的换算
    14简化路径(71)
    13字符串解码(394)
    12 反转每对括号间的子串(1190)
    11 使括号有效的最少添加(921)
    10 K 个一组翻转链表(25)
    9 从链表中删去总和值为零的连续节点(1171)
    8 链表中的下一个更大节点(1019)
    7两两交换链表中的节点(24)
    6 奇偶链表(
  • 原文地址:https://www.cnblogs.com/dazuihou/p/3600317.html
Copyright © 2020-2023  润新知