码迷,mamicode.com
首页 > 移动开发 > 详细

Android短信数据库监听回调多次问题

时间:2015-10-27 13:04:28      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:

在监听Android短信数据库变化时。由于只能注册content://sms/ 的observer。所以,在数据库每次状态变化的时候,都会多次回调onChange 方式。目前还未找到很好的方式,解决回调多次的问题。只能通过代码逻辑来屏蔽这个问题。 目前,我使用的方式是通过时间来过滤两次的回调。

 long lastTimeofCall = 0L;
    long lastTimeofUpdate = 0L;
    long threshold_time = 10000;

 if (lastTimeofCall - lastTimeofUpdate < threshold_time) {
        
            lastTimeofUpdate = System.currentTimeMillis();
            
          
            return;
        }

这种方式 确实能够屏蔽数据库两次的状态更新。

其实,还有另一种试,就是数据库改变一次,做一个自己的业务操作。比如:插入或删除。再把这次操作的id缓存 起来。下次再调用 时,从缓存中判断是否已经做过相应的操作了。

以上的方式,能解决一些问题。但最重要的,还是要根据自己的业务来做。

如果大家都监听短信有更好的方式。可以留言,欢迎 一起交流。

最后,说一下为何要用这种试监听短信。因为,使用也可以广播监听短信,但大家也知道。目前,在中国很多所谓的安全软件很流氓,它们也会通过各种方式监听短信广播。而且,有时候,在它们监听到广播后,就把广播取消了,造成其它软件无法收到广播。

欢迎和朋友们一起交流。!!!

Android短信数据库监听回调多次问题

标签:

原文地址:http://www.cnblogs.com/dongweiq/p/4913775.html

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