Android之监测database的改变--notifyChange

我们在ContentProvider的insert,update,delete等改变之后调用getContext().getContentResolver().notifyChange(uri, null);这样就通知那些监测databases变化的observer了,而你的observer可以在一个service里面注册。

以Downloadmanger为例子:
定义ContentObserver,并且在onChange里做你想做的事情。

Java代码  收藏代码
  1. /** 
  2.      * Receives notifications when the data in the content provider changes 
  3.      */  
  4.     private class DownloadManagerContentObserver extends ContentObserver {  
  5.   
  6.         public DownloadManagerContentObserver() {  
  7.             super(new Handler());  
  8.         }  
  9.   
  10.         /** 
  11.          * Receives notification when the data in the observed content 
  12.          * provider changes. 
  13.          */  
  14.         public void onChange(final boolean selfChange) {  
  15.             if (Constants.LOGVV) {  
  16.                 Log.v(Constants.TAG, "Service ContentObserver received notification");  
  17.             }  
  18.             updateFromProvider();  
  19.         }  
  20.   
  21.     }  
在DownloadService的onCreate中注册:

Java代码  收藏代码
  1. public void onCreate() {  
  2.        super.onCreate();  
  3.        if (Constants.LOGVV) {  
  4.            Log.v(Constants.TAG, "Service onCreate");  
  5.        }  
  6.   
  7.        mDownloads = Lists.newArrayList();  
  8.   
  9.        mObserver = new DownloadManagerContentObserver();  
  10.        getContentResolver().registerContentObserver(Downloads.CONTENT_URI,  
  11.                true, mObserver);  
  12. .....}  

Java代码  收藏代码
  1. /** 
  2.     * Cleans up when the service is destroyed 
  3.     */  
  4.    public void onDestroy() {  
  5.        getContentResolver().unregisterContentObserver(mObserver);  
  6.        if (Constants.LOGVV) {  
  7.            Log.v(Constants.TAG, "Service onDestroy");  
  8.        }  
  9.        super.onDestroy();  
  10.    }  
可以参考以下文章:

http://hi.baidu.com/lck0502/blog/item/a818258f304b61e0f01f3691.html


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双一流高校出新规:研究生未经导师同意发论文,不得用于毕业、评奖!

全世界只有3.14 % 的人关注了爆炸吧知识本文转自:募格学术近日,吉林大学研究生院发布文件《吉林大学关于加强对研究生在学期间公开发表论文等学术成果管理的通知》,因内容涉及校内研究生论文发表要求,引起很多研究生的注意。其中包…

android http 三次 握手,面试解析:3次握手与4次挥手

在面试中,三次握手和四次挥手可以说是问的最频繁的一个知识点了,我相信大家也都看过很多关于三次握手与四次挥手的文章。今天的这篇文章,重点是围绕着面试,我们应该掌握哪些比较重要的点,哪些是比较多被面试官给问到的…

微服务组件记事本:Skywalking执行效果 · 多图篇

立冬时节知多少今天立冬,周末两天在家继续研究了下Skywalking,感觉这个组件还是很不错的,无论是设计思想还是架构设计,都能从中受到启发和帮助,建议感兴趣的小伙伴可以看看,当然,如果不感兴趣还…

堆和栈的区别 (转贴)

从其他博客复制过来的,因为这个够详细,转过来学习一下! 堆和栈的区别一、预备知识—程序的内存分配一个由c/C编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数…

ios和android交互差异,Android 和 iOS 主要交互区别整理

我简单整理了一下Android 和 iOS 主要的交互区别,如果有遗漏欢迎批评补充。我总结有下面五类区别:一、界面布局形式的差异1 iOS 的 Tab Bar在iOS应用内最多用Tab Bar来切换不同的模块,Tab Bar 也是最受欢迎最容易被用户认知的方式。2 Android…

要比惨吗?看看这个女人

全世界只有3.14 % 的人关注了爆炸吧知识她从不知道辞职是什么滋味,因为被炒的总是她;连续被三家公司炒掉之后,她不得不自己做SOHO。生了双胞胎,本是喜事;但还在月子里,却发现老公出轨。小三还没打走&#x…

【Blog.Core开源】完成升级.NET 6.0

(千呼万唤始出来,_ _ _ _ _ _ _)是不是每个人都已经尝试一遍vs2022和.NET6.0了😁,从各个微信群和盆友圈就可见一斑。今天一大早,一位粉丝就发私信,让升级6.0,这么简单的需求,必须满足&#xff0…

Jenkins file一行代码部署.NET程序到K8S

Jenkins file一行代码部署.NET程序什么是Jenkins共享库随着微服务的增多,每个项目的都需要pipline文件,这样的话Pipeline代码冗余度高,并且pipeline的功能越来越复杂。jenkins可以使用Shared Lib,将一些公共的pipeline抽象做成模块…

吵架后女生和男生的夜晚!所有男生都这样吗?

1 猫:哪个瓜娃子开的灯?!2 神回复在哪里3 舔舔舔舔舔,被发现了!4 喵喵:你当我傻吗?5 今晚可不可以到你家吃饭6 吵架后女生的夜晚vs吵架后男生的夜晚太真实了7 打游戏时候 对方队友和我方…

项目背景介绍

Adventure 项目(1) 墨翟坐在办公室里,正和秘书 Alan 开会,讨论着一件让他和 Alan 都很烦心的事情。Adventure 在全球都有工厂,制造各种不同的产品。作为制造部门的负责人,墨翟需要每个月了解各个工厂的运行…

不想升Win11?Win10新版马上到!

微软正式宣布 Windows 10 操作系统的下一个功能更新:Windows 10 版本 21H2。微软表示:虽然我们对下一代 Windows 11 感到兴奋,但也专注于支持 Windows 10 上超过 13 亿台活跃设备。当人们继续在混合和远程环境中工作、学习和娱乐时&#xff0…

娱乐项目和女朋友哪个重要?

1 这招风卷残云我只演示一遍,看好了2 摄影师给男生拍照VS给女生拍照3 这个视力表是永远不会近视的4 娱乐项目和女朋友哪个重要?小伙子你飘了啊5 最怕空气突然安静6 “灵魂六问”7 原来是这样周末愉快↓ ↓ ↓

这些高校竟因名字太“坑爹”被误会为三本?盘点九所实力强劲但被名字耽误的大学...

全世界只有3.14 % 的人关注了爆炸吧知识有这样一个段子:西北某地一学生,志存高远,矢志从医。首次高考考入泸州医学院,到校后发现不理想,果断返乡复读。一年后成功考入四川医科大学,到校后傻眼了&#xff0c…

【全】.net core平台单元/集成测试结果、覆盖率、圈复杂度到可视化HTML报告之路...

.net core 平台的测试框架有好几个可供选择,内置的MSTest框架、NUnit框架以及强大好用的xUnit框架,依托宇宙最强的编辑器Visual Studio,可以开展非常友好的测试以及快乐的展示测试的结果。如果仅限于此,那么这篇文章对你来说就是多…

哪种HTML列表会自动编号,HTML列表的种类

HTML 支持有序、无序和定义列表无序列表无序列表是一个项目的列表,此列项目使用粗体圆点(典型的小黑圆圈)进行标记。无序列表始于 标签。每个列表项始于 。(推荐学习:HTML入门教程)CoffeeMilk浏览器显示如下:CoffeeMilk列表项内部可以使用段落…

Android之AsyncTask异步任务详解总结

Android 多线程----AsyncTask异步任务详解 【正文】 本文将讲解一下Android的多线程的知识,以及如何通过AsyncTask机制来实现线程之间的通信。 一、Android当中的多线程: 在Android当中,当一个应用程序的组件启动的时候,并且没有其…

docker源码_使用docker、Jenkins、gitlee、springboot、搭建个人博客网站 并实现CI/CD 外加机器人提醒...

看朱成碧思纷纷,憔悴支离为忆君。--- barcke前言:服务器用的是云服务器买的阿里的linux、jdk1.8、docker服务端使用的为阿里的docker镜像仓库、mysql使用5.7版本的、redis使用最新版即可、文件服务使用的阿里的oss.项目采用jib推送docker镜像.附录: git源码地址—-h…

初次见面,如何令人永远难忘

1 初次见面,如何令人永远难忘2 见到熟人和见到偶像的区别3 真正的好朋友是在最紧急的时刻帮你一把的那个人4 当你正在减肥时,你朋友约你出去吃饭5 被这样的友谊感动到了6 等我老了也要和大爷一样做一个时尚的人不说别的大爷好酷↓ ↓ ↓

号称迄今为止最快,.NET6带来了什么?

北京时间11月8号午夜,.NET6正式发布。该版本经历了一万多次Git提交,号称迄今为止最快的.NET,究竟有哪些亮点呢?1LTS版本,发布前经过了长期的线上生产压力测试;2性能提升,包括文件I/O&#xff0c…

linux 文件系统的管理 (硬盘)

RH133—Unit4 文件系统的管理 一、系统在初始化时如何识别硬盘 1、系统初始时根据MBR的信息来识别硬盘,其中包括了一些执行文件就来载入系统,这些执行文件就是MBR里前面446bytes里的boot loader 程式,而后面的16X4的空间就是存储分区表信息的…