我们在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. public DownloadManagerContentObserver() {
  6. super(new Handler());
  7. }
  8. /**
  9. * Receives notification when the data in the observed content
  10. * provider changes.
  11. */
  12. public void onChange(final boolean selfChange) {
  13. if (Constants.LOGVV) {
  14. Log.v(Constants.TAG, "Service ContentObserver received notification");
  15. }
  16. updateFromProvider();
  17. }
  18. }

在DownloadService的onCreate中注册:

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

Android之监测database的改变--notifyChange相关推荐

  1. android 拦截耳机按键,Android耳机监测以及耳机按键监测

    最近在做Marvell的项目,碰到个耳机热插拔的问题,所以顺便看了下相关代码,这里来贡献一下给大家. 我们这里以PXA的代码为例,整个框架比较的简单清晰,上层是分别是HeadsetObserver.j ...

  2. android 字体颜色选择,Android中颜色选择器和改变字体颜色的实例教程

    易采站长站为您分析Android中颜色选择器和改变字体颜色的实例教程,其中改变字体颜色用到了ColorPicker颜色选择器,需要的朋友可以参考下 1.构建一张七彩图: 我们经常看到这种样子的颜色选择 ...

  3. Android 性能监测工具,优化内存、卡顿、耗电、APK的方法

    导语     安卓大军浩浩荡荡,发展已近十个年头,技术优化月新日异,如今 Android 9.0 代号P  都发布了,Android系统性能已经非常流畅了.但是,到了各大厂商手里,改源码自定系统,使得 ...

  4. Android,监控ContentProvider的数据改变

    有时候应用中需要监听ContentProvider的改变并提供响应,这时候就要利用ContentObserver类了 不管是ContentProvider中实现的,insert,delete,upda ...

  5. Android ListView 点击item改变item的背景颜色(ListView实现光标移动)

    一下demo 地址 实现的效果图如下 ListView 光标移动,实现很是简单,这里是指item背景的改变 使用 listSelector listSelector  用户指定当前选中item 的颜色 ...

  6. android百度地图更换定位图标,android百度地图定位,改变MyLocationOverlay默认图标(原始为蓝色点)(两种方法)...

    开放地图API无外乎google ,百度,高德等.其它的还有很多,不过比较好用的就这三种了,如果不需要出国(台湾例外),则最好使用百度地图,性能比高德好的多,无聊的时候自己可以测试测试.. 下面我简单 ...

  7. Android --- TabHost 切换时,改变选项卡下字体的状态(大小、加粗、默认被选中第一个)

    上效果图: MiddleFragment.java 代码如下 import android.os.Bundle; import android.view.LayoutInflater; import ...

  8. Android --- TabLayout 切换时,改变选项卡下字体的状态(大小、加粗、默认被选中第一个)

    文章目录 一.前言 二.源码实例 1.选项卡所在的布局文件 `fragment_course_selection.xml` 2.选项卡所在类 `CourseSelectionFragment.java ...

  9. Android开发之RadioButton选择改变字体颜色与背景色

    先看效果图: 方法一: 公司理财项目里面用到的,当选中radioButton后要改变背景色和自提颜色,试了好几次这么都不行. 于是想到了selecter背景选择器,可是怎么写都不对.终于找到一种成功的 ...

最新文章

  1. [一个经典的多线程同步问题]解决方案三:互斥量Mutex
  2. 云计算简介+云计算建站平台
  3. 我的DWR学习(一)
  4. 运输pascal 90分程序
  5. 文青工程师陈盛 — 程序员+文青是怎样一种体验
  6. json文件转为excel_2分钟上手、3小时学会无代码软件开发---XML、Json处理
  7. linux安装多个mysql数据库_linux下多个mysql5.7.19(tar.gz)安装图文教程
  8. Spring Integration完整示例
  9. 还敢吹「毫无PS痕迹」?小心被Adobe官方AI打脸
  10. python格式化输出二进制即对应的unicode字符_Python基础—格式化输出(%用法和format用法)...
  11. UI设计师经常去的五个网站
  12. glide源码中包含了那种设计模式_Glide源码解读(一)
  13. 必看 | 机器视觉基础入门
  14. 数字化转型六图法:数据地图
  15. Threejs 字体单独发光
  16. 小白学习爬虫的第三天之数据解析bs4与pyQuery的使用
  17. 海康威视相机开发(一)
  18. TIA精致面板备份/恢复
  19. Proteus仿真51开发板
  20. Python3:简单的服务器(socketserver + MySQL)

热门文章

  1. TIOBE 9 月榜单:C#上涨1.18,Java 同比下滑3.18
  2. 初识ABP vNext(2):ABP启动模板
  3. 使用请求头认证来测试需要授权的 API 接口
  4. 谁说.NET不适合搞大数据、机器学习和人工智能
  5. 如何编写高性能的C#代码(四)字符串的另类骚操作
  6. 【好文】为什么必须学好.Net Core?怎样弯道超车新年高薪?这样做,一周就够了!(文末彩蛋)...
  7. ASP.NET Core基于K8S的微服务电商案例实践--学习笔记
  8. .NET Core 3.0中IAsyncEnumerableT有什么大不了的?
  9. 使用Minikube部署本地Kubernetes集群(二十九)
  10. Build 2019 上微软的开源动作有点不一样