动态使用ContentObserver的问题

简介:         笔者在使用ContentObserver来监控一些设置的变化时,对于跨进程来通讯来说是非常方便的。但是笔者也遇到一些问题,比如我能不能动态的监控呢?  好比这种情况,我设置了某个设置的监听,也收到了这个设置的变化通知,但是处于有些原...

        笔者在使用ContentObserver来监控一些设置的变化时,对于跨进程来通讯来说是非常方便的。但是笔者也遇到一些问题,比如我能不能动态的监控呢?

  好比这种情况,我设置了某个设置的监听,也收到了这个设置的变化通知,但是处于有些原因,我又要把这个设置项的值修改成其他特殊需求的值,如果不改变监听的话,我自己设置进入新值以后,我的监听函数不是一样被执行了嘛!这是我不希望发生的,笔者也不想发生这种情况,就尝试了以下方法:

     收到这个值以后,动态unregisterContentObserver这个设置,然后设置这个值,最后再registerContentObserver回来,从简单流程上看这是可以的。但是笔者在实践中发现,这是有问题的,也就是在代码unregisterContentObserver这个设置后,再设置这个设置项时,变更通知还是收到了,也就是没有取消掉注册监听。笔者分析了一下,可能还是unregisterContentObserver的一些特性,数据库的操作,可能需要一些时间延时等待完成。但是,在这个流程中要加入延时的话,有事不可接受的,这个非常郁闷,笔者还不知道怎么解决,只能想其他办法去绕开这种情况,有知道细节的朋友可以指定一下。

    另外,ContentResolver在连续写时,可能只执行一次,比如,一个设置项在代码中先设置成A,再设置成B,然后设置成C,按理说监控函数有会来三次变更,但是实际上可能是来1次,笔者也碰到来2次的情况,没测试上来三次的情况。

目录
相关文章
|
12月前
|
Java 程序员 数据库
【动态连接】
【动态连接】
|
安全 JavaScript 前端开发
动态配置
动态配置
738 0
|
2月前
|
网络协议 算法 网络架构
动态路由
【8月更文挑战第18天】动态路由
31 3
|
2月前
|
物联网
什么是动态发射功率控制 (DTPC)?
【8月更文挑战第24天】
74 0
|
2月前
|
存储 Kubernetes API
在K8S中,静态、动态、自主式Pod有何区别?
在K8S中,静态、动态、自主式Pod有何区别?
|
移动开发 JSON 小程序
动态路由 TheRouter 的设计与实践
这篇文章是我在 2022【[GIAC 全球互联网架构大会](https://giac.msup.com.cn/2022sh/course?id=16425)】分享时所讲内容的文字版本,修改删减了演讲时的冗余言语,现开放给大家阅读,希望能给买不到票参加分享的 开源实验室 读者带来帮助。
187 0
|
存储 程序员 C语言
如何进行C++动态转换
如何进行C++动态转换
如何进行C++动态转换
|
负载均衡 Java 应用服务中间件
基于动态、静态内容结合的网络优化案例| 学习笔记
快速学习基于动态、静态内容结合的网络优化案例。
137 0
基于动态、静态内容结合的网络优化案例| 学习笔记
配置静态和动态
介绍: 静态nat 和 动态nat 的配置 静态nat 配置步骤 第一步 配置接口地址 第二步 配置静态地址转换 ip nat inside source static 内部私有地址 转换之后的公网地址 动态nat 配置步骤 第一步 配置接口地址 第二步 配置标准acl 指定需要转换的多个内部主机地址 access-list 编号 permit 网段地址 子网掩码反码 第三步 配置 转换后的公网地址地址池 ip nat pool 地址池名字 起始地址 结束地址 子网掩码 第四步 配置动态地址
161 0