您的位置:首页 > 编程语言 > PHP开发

ContentProvider实现数据共享1

2015-11-28 19:55 567 查看
1.起因: 不用的应用程序之间可能需要共享数据, 而当一个应用程序需要把自己的数据暴露给其他程序使用时,该应用可通过ContentProvider来实现。

2.配置ContentProvider: android:name=" . 类名 ";

android:authorities="org.crazyit.providers.dictprovider " //aurhorities 可称为contendProvided 的域名,可称为ConentProvider的一个命名标志。

android:exported="true" ;

3.URI 三部分 1, content:// (其是一个默认协议) 相当于网站的 http:// 。

2、 authorities (其实就是ContentProvider的authorities)。

3.words //资源部分,当访问者需要访问不同的资源时,这个部分是可以动态改变的。

URI uri = URI.parse(“ string name ”);

4.使用ContentResorver操作数据

(1)获取ContentResorver对象 :

ContentResolver resorver =getContentResourver();

(2)使用ContentResourver对象提供的方法操作数据

简而言之:ContentResourver是通过对指定URI执行CRUD等数据操作,这些CRUD操作会委托该URI执行对应的ConentProvider来实现,实现间接调用。

5.创建ContentProvider 说明

为了确定ContentProvider实际能处理URI ,以及确定每个方法中的URI参数所操作的数据,android系统提供UriMatcher类, UriMatcher类提供了如下两个方法:

获取UriMatcher对象 1.UriMacher matcher=new UriMatcher(UriMatcher.No_MATCH)

2.void addURI (String authority ,String path ,int code) // 该方法用于向UriMathcer注册URI ,其中authority 和 path 组合成一个URI

3.int Match(Uri uri) //匹配Uri ,返回 code

android也提供了ContentUris工具类,它是操作URI 字符串的工具类,提供了两个工具方法

URI withAppendedld(uri, id),用于为路径加上ID部分

如 URI uri=URI.parse(String name) ,Uri resultUri=ContentUris.withAppendedID(uri,2) ;

ID parseId(uri) ,从指定uri中解析出所包含的ID值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: