0
点赞
收藏
分享

微信扫一扫

Android移动应用基础教程【使用内容提供者共享数据】

本章目录

  • ​​一、内容提供者概述​​
  • ​​二、创建内容提供者​​
  • ​​三、访问其他应用程序​​
  • ​​1、查询其他程序的数据​​
  • ​​2 、查询系统短信​​
  • ​​四、内容观察者​​
  • ​​1、什么是内容观察者​​
  • ​​2、监测数据变化​​
  • ​​五、本章小结​​

一、内容提供者概述

Android移动应用基础教程【使用内容提供者共享数据】_Android

Android移动应用基础教程【使用内容提供者共享数据】_内容观察者_02

Android移动应用基础教程【使用内容提供者共享数据】_数据_03

二、创建内容提供者

Android移动应用基础教程【使用内容提供者共享数据】_内容观察者_04

Android移动应用基础教程【使用内容提供者共享数据】_Android_05

三、访问其他应用程序

1、查询其他程序的数据

//获取相应操作的Uri,Uri.parse()方法是将字符串转化成Uri对象。  Uri uri = Uri.parse("content://cn.itcast.mycontentprovider/person");  //获取ContentResolver对象    ContentResolver resolver = context.getContentResolver();    //通过ContentResolver对象查询数据    Cursor cursor = resolver.query(Uri uri, String[] projection, String selection,                                     String[] selectionArgs, String sortOrder);    while (cursor.moveToNext()) {        String address = cursor.getString(0);        long date = cursor.getLong(1);        int type = cursor.getInt(2);   }    cursor.close();复制代码

Android移动应用基础教程【使用内容提供者共享数据】_数据_06

Android移动应用基础教程【使用内容提供者共享数据】_数据_07

2 、查询系统短信

Android移动应用基础教程【使用内容提供者共享数据】_内容观察者_08

四、内容观察者

1、什么是内容观察者

Android移动应用基础教程【使用内容提供者共享数据】_数据_09

Android移动应用基础教程【使用内容提供者共享数据】_数据_10

//创建内容观察者
private class MyObserver extends ContentObserver{
public MyObserver(Handler handler) {
super(handler);
}
//当观察到Uri代表的数据发生变化时调用此方法,程序会回调onChange()方法,
//并在该方法中处理相关逻辑
public void onChange(boolean selfChange) {
super.onChange(selfChange);
}
}
ContentResolver resolver = getContentResolver();
Uri uri = Uri.parse("content://aaa.bbb.ccc");
//注册内容观察者
resolver.registerContentObserver(uri, true, new MyObserver(new Handler()));

Android移动应用基础教程【使用内容提供者共享数据】_内容提供者_11

@Override
protected void onDestroy() {
super.onDestroy();
//取消注册内容观察者
getContentResolver().unregisterContentObserver(new MyObserver(
new Handler()));
}

Android移动应用基础教程【使用内容提供者共享数据】_内容观察者_12

2、监测数据变化

Android移动应用基础教程【使用内容提供者共享数据】_内容提供者_13

五、本章小结

本章详细地讲解了内容提供者的相关知识,首先简单地介绍了内容提供者,然后讲解了如何创建内容提供者以及如何使用内容提供者访问其他程序暴露的数据,最后讲解内容观察者,通过内容观察者观察数据的变化。本章所讲的ContentProvider是Android四大组件之一,在后续遇到程序之间需要共享数据时,会经常用到该组件,因此要求初学者一定要熟练掌握本章内容。

为了记住你的笑容,我拼命按下心中的快门!——《美丽人生》

举报

相关推荐

0 条评论