在监听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缓存 起来。下次再调用 时,从缓存中


判断是否已经做过相应的操作了。


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


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


最后,说一下为何要用这种试监听短信。因为,使用也可以广播监听短信,但大家也知道。目前,在中国很多所谓的安全软件很流氓,它们也会通过


各种方式监听短信广播。而且,有时候,在它们监听到广播后,就把广播取消了,造成其它软件无法收到广播。


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

 


————————————————
版权声明:本文为CSDN博主「hudan2714」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hudan2714/article/details/8789775

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/yelanggu/p/17127531.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!