当前位置: 首页 > news >正文

ContentProvider介绍

一、概述
 Android提供了ContentProvider组件,可以将一个应用的数据提供给另一个应用使用

二、使用先创建继承ContentProvider的类

 1 public class DemoProvider extends ContentProvider{
 2     
 3     //Uri路径匹配,没有返回-1
 4     public static final UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);
 5     public static final int CODE = 1;
 6 
 7     static{
 8         //创建匹配规则 authorities(主机名)、路径、编码(匹配成功返回值)
 9         //路径后可增加数字(用"#"表示)
10         //Uri:"com.demo.DemoContentProvider/path/#"
11         matcher.addURI("com.demo.DemoContentProvider","path",CODE);
12     }
13 
14     @Override
15     public boolen onCreate(){
16         return false;
17     }
18     
19     //Uri、查询的列、条件、条件对应参数、排序
20     @Override
21     public String query(Uri uri,String[] projection,String selection,
22         String[] selectionArgs,String sortOrder){
23         int back = matcher.match(uri);
24         //返回值相同
25         if(back == CODE){
26             //这里进行查询操作
27             //若要去path中数字使用long id = ContentUris.parseId(uri);
28             //略...
29         }
30         return null;    
31     }
32 
33     @Override
34     public String getType(Uri uri){
35         return null;
36     }
37 
38     @Override
39     public Uri insert(Uri uri,ContentValues values){
40         return null;
41     }
42 
43     @Override
44     public int delete(Uri uri,String selection,String[] selectionArgs){
45         return 0;
46     }
47 
48     @Override
49     public int update(Uri uri,ContentValues values,String selection,
50         String[] selectionArgs){
51         return 0;    
52     }
53 }

三、清单文件中配置

1 <!--authorities译为官方,这里表示一个标识Uri-->
2     <provider 
3         android:name=".DemoContentProvider"
4         android:authorities="com.demo.DemoContentProvider"
5         />

四、另一个应用中调用

1     //使用内容解析者
2     //内容解析者使用内容提供者查找对应Uri,然后将数据返回
3     ContenResolver resolver = getContentResolver() ;
4     Uri uri = Uri.parse("content://com.demo.DemoContentProvider/path");
5     Cursor cursor = resolver.query(uri,null,null,null,null);

 

转载于:https://www.cnblogs.com/zhuchengyi/archive/2013/04/02/2996418.html

相关文章:

  • 10.19 iptables规则备份和恢复10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作...
  • C# 屏幕监控 自动截屏程序 主窗体隐藏,仅在进程中显示
  • 手机加载优化 - 2x、3x图
  • 清明小感
  • [win7-oracle处理方法]--java.lang.Exception: Exception in sending Request :: null(转)
  • 0323-方法(函数)
  • 把每天当成人生第一天来过,把每一天当成人生最后一天来过
  • 第六届蓝桥杯java b组第五题
  • 在指定宽度和高度范围内最大化缩放图片
  • 戴尔大中华区解决方案顾问鲍荣钦:技术驱动,数据改变物流
  • HDU 2844 Coins
  • 上海商业发展研究院刘斌:变革下的供应链发展趋势
  • 刷脸社区来了 阿里云打造无卡化智能社区
  • 中国制造2025 带动机器视觉进入快速车道
  • 【转】Android 中的 Service 全面总结
  • 《Java编程思想》读书笔记-对象导论
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • CSS实用技巧
  • iOS编译提示和导航提示
  • java正则表式的使用
  • js数组之filter
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Next.js之基础概念(二)
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Python - 闭包Closure
  • ReactNativeweexDeviceOne对比
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • ubuntu 下nginx安装 并支持https协议
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • Webpack 4x 之路 ( 四 )
  • 大数据与云计算学习:数据分析(二)
  • 对话:中国为什么有前途/ 写给中国的经济学
  • - 概述 - 《设计模式(极简c++版)》
  • 工程优化暨babel升级小记
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • ionic异常记录
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​linux启动进程的方式
  • $(selector).each()和$.each()的区别
  • (30)数组元素和与数字和的绝对差
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (九十四)函数和二维数组
  • (生成器)yield与(迭代器)generator
  • (四)Controller接口控制器详解(三)
  • (一)kafka实战——kafka源码编译启动
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)创业家杂志:UCWEB天使第一步
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET Core跨平台微服务学习资源
  • .Net mvc总结
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET开发不可不知、不可不用的辅助类(一)