黑马程序员技术交流社区

标题: android之Content Provider组件 [打印本页]

作者: android_vae    时间: 2016-6-1 13:29
标题: android之Content Provider组件
Content Provider为存储和获取数据提供了统一的接口,使用Content Provider可以在不同的应用程序之间共享数据。
Content Provider使用表的形式组织数据
URI:统一资源标识符
1.每一个ContentProvider都拥有一个公共的URI,这个URI用于表示这个ContentProvider所提供的数据。
2.Android提供的ContentProvider都放在android.provider包中。
CoontentProvider提供的常用方法:
•query( )                //查询
•inert( )                        //插入
•update( )                //更新
•delete( )                //删除
•getType( )                //得到数据类型
•onCreate( )                //创建时的回调函数
实现ContentProvider的过程
1.        定义一个CONTENT_URI(创建一个类,可以在子类中实现BaseColumns接口)
        public static final Uri CONTENT_URI = Uri.parse(“content://完整ContentProvider类名”);
表中的字段也用常量定义
表类型:(访问整张表)
        Public static final String CONTENT_TYPE=”vnd.android.cursor.dir/vnd.XXX”;
访问一条数据:
         Public static final String CONTENT_TYPE¬_ITEM=”vnd.android.cursor.item/vnd.XXX”;
默认排序方法:
        Public static final String DEFAULT_SORT_ORDER=”_id desc”;
2.        定义一个ContentProvider继承类,并实现query、inert、update、delete、getType、onCreate等方法
        Private static final  UriMatcher uriMatcher = new UriMatcher( );
        Static{
                uriMatcher.addURI(“完整类名”,”路径”,编号);
                ••••••
        }
        //根据传入的Uri,返回Uri表示的数据类型
        getType(Uri uri){ }
        public static HashMap<String, String>  MyMap;
        static {
                MyMap = new HashMap<String , String>;
                MyMap.put(字段名, 别名);                }
3.        在AndroidManifest.xml中声明
android:name=””
android:authorities=”包名加类名”





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2