码迷,mamicode.com
首页 > 其他好文 > 详细

动态使用ContentObserver的问题

时间:2014-08-25 21:14:04      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:style   使用   数据   问题   代码   时间   sp   size   on   

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

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

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

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

动态使用ContentObserver的问题

标签:style   使用   数据   问题   代码   时间   sp   size   on   

原文地址:http://blog.csdn.net/edsam49/article/details/38825893

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!