怎么对ContentProvider中的数据变化进行监控
2012-12-18 11:42
344 查看
对于ContentProvider中数据变化的监控,系统提供了专门管理的方法,而这套方法好像和ContentProvider的关系不大。监控基于观察者模式,页可以应用到别的方面。同样这个监控也是跨进程的。
observer方面需要完成注册和注销(onDestroy()时)
observable方面需要完成数据改变后的触发
先是observer端
注册:
然后是observable端
系统的这个obserer模式并没有要求使用的uri和ContentProvider使用的uri一致,只要注册测和触发时使用的时相同或者触发用的uri是注册的子级uri,就可一完成通知。注册和发出变化的通知也不许要通过啊uri的验证。所以这个模式是可以跨进程任意使用的。
什么时候使用?
需要在跨进程中使用Observer模式的时候就可以使用这个东西,系统级的Observer。非跨进程刷新时不要用这个东西,和进程内调用比进程间调用更消耗资源,同时会让uri的命名空间更加混乱。
observer方面需要完成注册和注销(onDestroy()时)
observable方面需要完成数据改变后的触发
先是observer端
注册:
//新建用于监听变化的类 ContentObserver observer = new ContentObserver(new Handler()) { @Override public void onChange(boolean selfChange) { System.out.println("ContentObserver.onChange()"); } }; //将监听变化的类注册到系统的ContentResolver中。第二个参数如果是true,会对uri的子级数据进行监控,否则只对当前级进监控 getContentResolver().registerContentObserver( Uri.parse("content://org.daniel.android.provider"), true, observer);注销:
//在onDestroy()中 getContentResolver().unregisterContentObserver(observer);
然后是observable端
//当数据变化时。uri是数据改变对应的uri,可以是1条的,也可以是多条的 getContext().getContentResolver().notifyChange(Uri.parse( "content://org.daniel.android.provider"), null);
系统的这个obserer模式并没有要求使用的uri和ContentProvider使用的uri一致,只要注册测和触发时使用的时相同或者触发用的uri是注册的子级uri,就可一完成通知。注册和发出变化的通知也不许要通过啊uri的验证。所以这个模式是可以跨进程任意使用的。
什么时候使用?
需要在跨进程中使用Observer模式的时候就可以使用这个东西,系统级的Observer。非跨进程刷新时不要用这个东西,和进程内调用比进程间调用更消耗资源,同时会让uri的命名空间更加混乱。
相关文章推荐
- 关于tableview的界面得数据的变化怎么进行刷新的问题
- ContentProvider提供的对数据库批量操作的方法和对数据库变化监控的方法
- Android,监控ContentProvider的数据改变
- python使用pygal进行绘制数据图表和监控图表
- ContentProvider进行数据共享
- 监听ContentProvider中数据的变化
- OWI监控和收集方法——利用PL/SQL过程进行性能数据采样(2)
- Fiddler怎么对IPhone手机的数据进行抓包分析
- Android ContentProvider和ContentObserver 监控数据库变化 简单使用说明
- Android开发14——监听内容提供者ContentProvider的数据变化
- 实例教程十:监听ContentProvider中数据的变化
- WPF中,怎么在后台代码进行数据绑定
- 程序员怎么获取股票实时数据,并进行技术指标分析呢?
- 监控ContentProvider的数据改变
- 跪求!利用深度信念网络工具箱对凯斯西出大学轴承数据进行分类错误率无法降低怎么办
- 后台返回数据事null时怎么进行判断
- 4.3使用ContentObserver监听ContentProvider中的数据变化
- 监听ContentProvider的数据变化
- ContentObserver监听ContentProvider的暴露数据的变化
- perl 监控数据变化