内容观察者是做什么的?

内容观察者主要用来观察数据库是否被操作了。

以查询数据库为例:

首先注册一个内容观察者(App1):

 1 //false 观察的Uri必须是一个确切的Uri  如果是true,只需要匹配一个主机名,后面所有的操作都生效
 2         getContentResolver().registerContentObserver(uri,true,new MyContentObserver(new Handler()));
 3
 4
 5 private class MyContentObserver extends ContentObserver{
 6
 7         /**
 8          * Creates a content observer.
 9          *
10          * @param handler The handler to run {@link #onChange} on, or null if none.
11          */
12         public MyContentObserver(Handler handler) {
13             super(handler);
14         }
15
16         //当观察的Uri发生改变的时候执行
17         @Override
18         public void onChange(boolean selfChange) {
19             System.out.println("数据库被操作了!!!!!");
20             super.onChange(selfChange);
21         }
22     }

onChange()方法:当观察的Uri的数据库被操作的时候,会执行onChange()方法。

App2操作数据库:

 1     private void doQuery(){
 2         Uri uri = Uri.parse("content://com.coderwei.provider/query");
 3         Cursor cursor = getContentResolver().query(uri,new String[]{"name","money"},null,null,null);
 4
 5
 6         if (cursor!=null){
 7             //如果操作了数据库,就发出一个通知
 8             this.getContentResolver().notifyChange(uri,null);
 9             while (cursor.moveToNext()){
10                 String name = cursor.getString(0);
11                 String money = cursor.getString(1);
12                 System.out.println("name:"+name+"  money: "+money);
13             }
14         }
15     }

转载于:https://www.cnblogs.com/Godfunc/p/6065547.html

Android内容观察者相关推荐

  1. Android 内容观察者 ContentObserver 类

    ContentObserver--内容观察者,目的是观察特定Uri引起的数据库的变化 这个是官方的文档,将的也是比较少 一般使用分为四步, 1.创建内容观察者 ContentObserver 2.注册 ...

  2. 简单步骤:Android studio 内容观察者 - 实现数据变化监测

    提示:本篇文章将会尽量保持精简,附加图文解释,焦躁是敲写代码最大的敌人,三连是最大的支持! 文章目录 前言 一.项目介绍 二.使用步骤 1.创建第一个程序 2.导入图片 3.放置界面控件 4.创建数据 ...

  3. Android 观察系统中短信内容的变化(内容观察者)

    //内容观察者(如果系统的短信发生了变化,比如刚获取一条短信,那么将触发onChange方法)ContentResolver contentResolver = getContentResolver( ...

  4. Android的内容观察者

    有个很常见的需求就是当有新的短信来的时候,把内容显示在界面上.这里就要用到内容观察者.就是让你的程序监视短信,如果他内容发生变化的时候,你去获取.而短信那边做的情况就 是,当他自己的数据变化时,他告诉 ...

  5. 2020-11-12(内容提供者,内容解析者,内容观察者)

    内容提供者实现步骤 a.写一个类继承ContentProvider 重写onCreat query delete insert getType b.在清单文件中声明对应的provider节点 auth ...

  6. android 广播观察者,作业三——观察者模式在Android广播机制上的应用

    观察者模式在Android广播机制上的应用 点击跳转项目git地址:https://github.com/Arfer-ustc/practice-Android.git 一.观察者模式在Android ...

  7. android 广播观察者,BroadcastReceiver和Activity之间的通信 – android

    我的应用程序中有一个广播接收器,每次用户接到来电时都会被触发.现在,当它发生时,我需要广播接收器来调用特定活动中的特定方法.现在,我尝试将此方法设置为静态,因此可用,但有些东西告诉我这是一个非常糟糕的 ...

  8. Android内容提供程序

    内容提供程序管理对结构化数据集的访问,它们封装数据,并供用于定义数据安全性的机制.内容提供程序是连接一个进程中的数据与另一个进程中运行的代码的标准界面. 将应用的Context中的ContentRes ...

  9. Android 内容提供者(Content provider)

    原文地址:http://justsee.iteye.com/blog/936612 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据.虽然 ...

最新文章

  1. python交叉编译第三方库_第三方库交叉编译
  2. java接口测试工具_接口测试基础了解篇
  3. 使用pngquant来压缩png资源缩小apk
  4. 微信小程序 遇到问题1
  5. 一个隐藏着的僵尸巨兽——Ponmocup僵尸网络
  6. 【目录】 网络瑞士军刀-netcat的秘诀
  7. asp.net mvc 正常支持Fckeditor编辑器
  8. LOJ.2865.[IOI2018]狼人(Kruskal重构树 主席树)
  9. php 伪造请求连接,phpcurl发送伪造请求
  10. [Java] 蓝桥杯BASIC-29 基础练习 高精度加法
  11. ubuntu18.04 本地源制作
  12. 【职场日语】日文简历模板
  13. xplay6android降级,xplay6 7.0降级6.0卡刷包
  14. winpe装双系统linux_在Winpe下安装Ubuntu
  15. python语言turtle库画图代码示例_5分钟轻松搞定,Python开发之turtle库的基本操作...
  16. 你说你懂计算机网络,那这些你都知道吗
  17. 来自一个曾经200斤现在140斤程序员的减肥成功经验(包含个人认为相对安全的饮食法推荐)
  18. python数据分析流程
  19. 【UE4】PMC程序化生成戈德堡多面体详解(六边形星球)
  20. UDT(【CVPR2019】Unsupervised Deep Tracking无监督目标跟踪)

热门文章

  1. 计算机中的颜色XIII——颜色转换的快速计算公式
  2. 手把手教你自己写一个js表单验证框架
  3. 简便的golang orm
  4. 精通机器学习的5本免费电子书(5 free e-books for machine learning mastery)
  5. Android 使用OpenCV的三种方式(Android Studio)
  6. 背景建模与前景检测2(Background Generation And Foreground Detection Phase 2)
  7. WPF模板(二)应用
  8. Android IOS WebRTC 音视频开发总结(二三)-- hurtc使用说明
  9. sencha touch中实现页面之间的互相跳转
  10. Titanium Developer