内容观察者
来源:互联网 发布:linux查看实时日志命令 编辑:程序博客网 时间:2024/05/16 17:03
内容观察者
在对数据库操作的时候,有时候我们会遇见一些特殊的需求,要求应用3去观察应用1数据库中的数据由于应用2发生的变化,通常大家都会想到可以使用广播的方式,但是android中对此创建了一个API,ContentObserver(内容观察者),就是用来观察数据库一旦改变就发出消息。让使用者做出处理。
内容观察者如何使用:
【1】注册内容观察者
Uri uri =uri.parse("content://com.aaa.provider);//其中第二参数时一个boolean,如果为true,表示uri可以时非完整的路径,如果是false,就必须要是一个完整的uri,上面的uri就是非完整的。第三个参数是contentReservergetContentResolver().registerContentObserver(uri,true,new MyContentObserver);
第三个参数需要内容观察者,我们就定义一个。这个类是一个抽象类,所以我们必须要去继承。
private class MyContentObserver extends ContentObserver{/** * Creates a content observer. * * @param handler The handler to run {@link #onChange} on, or null if none. */public MyContentObserver(Handler handler) { super(handler);}/** * 当内容发生改变时调用 * @param selfChange */@Overridepublic void onChange(boolean selfChange) { Log.e("------------","数据库发生改变"); super.onChange(selfChange);}}
同时要想接收到数据库改变的消息,我们还必须要在其他应用对数据库操作后自己发送一个消息,
getContext(). getContentResolver().notifyChange(uri,observer);其中第二个参数为内容观察者,如果知道要发送的对象,可以直接指定,如果想要发送给多个内容观察者,或者不清楚接收者,就可以指定为null
这样我们就可以在数据发生改变的时候接收到消息,然后做出相应的处理,比如我们的图片库或者媒体库,如果有一个应用添加了一张图片或者一段音乐到数据库,并且发送了消息给内容观察者,这时候图片库和媒体库就可以刷新数据,接收到新的数据,不然图片库或者媒体库中是无法找到该数据的。
0 0
- 内容观察者
- 内容观察者
- 内容观察者
- 内容观察者
- 内容观察者
- 内容观察者
- 内容观察者
- Android内容观察者--ContentObserver
- ContentObserver内容观察者
- ContentObserver 内容观察者
- 学习内容观察者
- Android的内容观察者
- Android -- ContentObserver 内容观察者
- 内容观察者 contentResolver 使用
- 内容观察者(一)
- android 内容观察者
- 内容观察者:监听短信
- 内容观察者使用
- linux 下查看文件的完整时间信息
- 标准库类型vector
- (个人)AR电子书系统创新实训第一周(2)
- Activity生命周期与启动模式
- kettle 合并记录步骤中的 关键字段和 比较字段的说明
- 内容观察者
- [leetcode]200. Number of Islands
- Friends and Enemies HDU
- 图片压缩站
- 理解指针数组、数组指针、函数指针、函数指针数组、指向函数指针数组的指针
- 深入理解Java之线程池
- Node.js(一)
- [算法-java] 将一个矩阵按照从外向里以顺时针的顺序打印出每一元素
- Unity 截屏 录屏 的方法参考