一 概述
ContentProvider是安卓中用于跨进程提供信息的组件。提供统一的接口供client端使用,client不必在乎server端的具体数据来源实现。 ContentProvider的使用分为两部分: 1、server端定义provider 2、client端请求server端的provider 以下是组件的简单介绍: developer.android.com/guide/topic… www.runoob.com/w3cnote/and…
1.1 server端创建内容提供器
提供内容的app只需要创建类继承自抽象类ContentProvider并重写其抽象方法,并在manifest中生命即可。 具体代码示例如下链接:www.runoob.com/w3cnote/and…
1.2 client使用server端提供的provider
private void getMsgs(){
Uri uri = Uri.parse("content://sms/");
ContentResolver resolver = getContentResolver();
//获取的是哪些列的信息
Cursor cursor = resolver.query(uri, new String[]{"address","date","type","body"}, null, null, null);
while(cursor.moveToNext())
{
String address = cursor.getString(0);
String date = cursor.getString(1);
String type = cursor.getString(2);
String body = cursor.getString(3);
System.out.println("地址:" + address);
System.out.println("时间:" + date);
System.out.println("类型:" + type);
System.out.println("内容:" + body);
System.out.println("======================");
}
cursor.close();
}
client端首先需要获取app进程对应的ContentResolver。调用ContentResolver的query方法来查询接口。 ContentResolver类是安卓为client端提供的访问provider的工具类。 具体代码示例如下链接:www.runoob.com/w3cnote/and…
1.3 架构图
1.4 关键类解释
| ContentProvider | 内容提供器server端需要继承的抽象类,为client提供数据 |
|---|---|
| ContentResolver | client端查询server端所需要借助的工具类 |