Android之监测database的改变--notifyChange
我们在ContentProvider的insert,update,delete等改变之后调用getContext().getContentResolver().notifyChange(uri, null);这样就通知那些监测databases变化的observer了,而你的observer可以在一个service里面注册。
以Downloadmanger为例子:
定义ContentObserver,并且在onChange里做你想做的事情。
- /**
- * Receives notifications when the data in the content provider changes
- */
- private class DownloadManagerContentObserver extends ContentObserver {
- public DownloadManagerContentObserver() {
- super(new Handler());
- }
- /**
- * Receives notification when the data in the observed content
- * provider changes.
- */
- public void onChange(final boolean selfChange) {
- if (Constants.LOGVV) {
- Log.v(Constants.TAG, "Service ContentObserver received notification");
- }
- updateFromProvider();
- }
- }
在DownloadService的onCreate中注册:
- public void onCreate() {
- super.onCreate();
- if (Constants.LOGVV) {
- Log.v(Constants.TAG, "Service onCreate");
- }
- mDownloads = Lists.newArrayList();
- mObserver = new DownloadManagerContentObserver();
- getContentResolver().registerContentObserver(Downloads.CONTENT_URI,
- true, mObserver);
- .....}
- /**
- * Cleans up when the service is destroyed
- */
- public void onDestroy() {
- getContentResolver().unregisterContentObserver(mObserver);
- if (Constants.LOGVV) {
- Log.v(Constants.TAG, "Service onDestroy");
- }
- super.onDestroy();
- }
可以参考以下文章:
http://hi.baidu.com/lck0502/blog/item/a818258f304b61e0f01f3691.html
Android之监测database的改变--notifyChange相关推荐
- android 拦截耳机按键,Android耳机监测以及耳机按键监测
最近在做Marvell的项目,碰到个耳机热插拔的问题,所以顺便看了下相关代码,这里来贡献一下给大家. 我们这里以PXA的代码为例,整个框架比较的简单清晰,上层是分别是HeadsetObserver.j ...
- android 字体颜色选择,Android中颜色选择器和改变字体颜色的实例教程
易采站长站为您分析Android中颜色选择器和改变字体颜色的实例教程,其中改变字体颜色用到了ColorPicker颜色选择器,需要的朋友可以参考下 1.构建一张七彩图: 我们经常看到这种样子的颜色选择 ...
- Android 性能监测工具,优化内存、卡顿、耗电、APK的方法
导语 安卓大军浩浩荡荡,发展已近十个年头,技术优化月新日异,如今 Android 9.0 代号P 都发布了,Android系统性能已经非常流畅了.但是,到了各大厂商手里,改源码自定系统,使得 ...
- Android,监控ContentProvider的数据改变
有时候应用中需要监听ContentProvider的改变并提供响应,这时候就要利用ContentObserver类了 不管是ContentProvider中实现的,insert,delete,upda ...
- Android ListView 点击item改变item的背景颜色(ListView实现光标移动)
一下demo 地址 实现的效果图如下 ListView 光标移动,实现很是简单,这里是指item背景的改变 使用 listSelector listSelector 用户指定当前选中item 的颜色 ...
- android百度地图更换定位图标,android百度地图定位,改变MyLocationOverlay默认图标(原始为蓝色点)(两种方法)...
开放地图API无外乎google ,百度,高德等.其它的还有很多,不过比较好用的就这三种了,如果不需要出国(台湾例外),则最好使用百度地图,性能比高德好的多,无聊的时候自己可以测试测试.. 下面我简单 ...
- Android --- TabHost 切换时,改变选项卡下字体的状态(大小、加粗、默认被选中第一个)
上效果图: MiddleFragment.java 代码如下 import android.os.Bundle; import android.view.LayoutInflater; import ...
- Android --- TabLayout 切换时,改变选项卡下字体的状态(大小、加粗、默认被选中第一个)
文章目录 一.前言 二.源码实例 1.选项卡所在的布局文件 `fragment_course_selection.xml` 2.选项卡所在类 `CourseSelectionFragment.java ...
- Android开发之RadioButton选择改变字体颜色与背景色
先看效果图: 方法一: 公司理财项目里面用到的,当选中radioButton后要改变背景色和自提颜色,试了好几次这么都不行. 于是想到了selecter背景选择器,可是怎么写都不对.终于找到一种成功的 ...
最新文章
- [一个经典的多线程同步问题]解决方案三:互斥量Mutex
- 云计算简介+云计算建站平台
- 我的DWR学习(一)
- 运输pascal 90分程序
- 文青工程师陈盛 — 程序员+文青是怎样一种体验
- json文件转为excel_2分钟上手、3小时学会无代码软件开发---XML、Json处理
- linux安装多个mysql数据库_linux下多个mysql5.7.19(tar.gz)安装图文教程
- Spring Integration完整示例
- 还敢吹「毫无PS痕迹」?小心被Adobe官方AI打脸
- python格式化输出二进制即对应的unicode字符_Python基础—格式化输出(%用法和format用法)...
- UI设计师经常去的五个网站
- glide源码中包含了那种设计模式_Glide源码解读(一)
- 必看 | 机器视觉基础入门
- 数字化转型六图法:数据地图
- Threejs 字体单独发光
- 小白学习爬虫的第三天之数据解析bs4与pyQuery的使用
- 海康威视相机开发(一)
- TIA精致面板备份/恢复
- Proteus仿真51开发板
- Python3:简单的服务器(socketserver + MySQL)
热门文章
- TIOBE 9 月榜单:C#上涨1.18,Java 同比下滑3.18
- 初识ABP vNext(2):ABP启动模板
- 使用请求头认证来测试需要授权的 API 接口
- 谁说.NET不适合搞大数据、机器学习和人工智能
- 如何编写高性能的C#代码(四)字符串的另类骚操作
- 【好文】为什么必须学好.Net Core?怎样弯道超车新年高薪?这样做,一周就够了!(文末彩蛋)...
- ASP.NET Core基于K8S的微服务电商案例实践--学习笔记
- .NET Core 3.0中IAsyncEnumerableT有什么大不了的?
- 使用Minikube部署本地Kubernetes集群(二十九)
- Build 2019 上微软的开源动作有点不一样