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

一、内容提供者概述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、创建内容提供者

在这里插入图片描述
在这里插入图片描述

三、访问其他应用程序

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();

在这里插入图片描述
在这里插入图片描述

2 、查询系统短信

在这里插入图片描述

四、内容观察者

1、什么是内容观察者

在这里插入图片描述
在这里插入图片描述

 //创建内容观察者
 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()));

在这里插入图片描述

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

在这里插入图片描述

2、监测数据变化

在这里插入图片描述

五、本章小结

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

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

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

振华OPPO

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值