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

在监听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

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:android短信数据库监听回调多次问题 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • Android事件分发-基础原理和场景分析

    作者:京东零售 郭旭锋 1 为什么需要事件分发 和其他平台类似,Android 中 View 的布局是一个树形结构,各个 ViewGroup 和 View 是按树形结构嵌套布局的,从而会出现用户触摸的位置坐标可能会落在多个 View 的范围内,这样就不知道哪个 View 来响应这个事件,为了解决这一问题,就出现了事件分发机制。 2 事件分发的关键方法 And…

    Android 2023年4月22日
    00
  • 实现自有App上架小游戏其实并非难事

    近年来小程序游戏迎来了爆发式增长。微信、支付宝、抖音等各大平台小程序游戏愈加丰富,你是否也让自己的App也拥有运行丰富的小游戏的能力?今天就来带大家看看如何实现。 我们先来看看各互联网巨头关于小游戏生态的特征: 「微信」 率先推出小程序,具有先发优势的微信平台毫无疑问走在了市场前列。根据2021阿拉丁发布的小游戏行业年度报告显示,微信小游戏已超过10w的开发…

    Android 2023年4月18日
    00
  • 投放视频广告时,如何快速与第三方播放器兼容?

    新媒体时代,广告样式越来越丰富。相较于传统的图文信息,视频类广告更具有直观性,能够让消费者在了解产品知识和功能的同时加深对产品的印象。 因此在各类网站或App上投放视频类广告是个很好的宣传方式,但广告商们如果想在网站上展示视频广告,必须确保视频广告投放协议与发布渠道的播放器兼容;如果不能兼容,广告商或者视频广告投放平台必须创建不同的响应,来与特定视频播放器兼…

    Android 2023年4月17日
    00
  • 【SIM】MCC(移动国家码)和 MNC(移动网络码)

    国际移动用户识别码( IMSI) international mobile subscriber identity 国际上为唯一识别一个移动用户所分配的号码。   从技术上讲,IMSI可以彻底解决国际漫游问题。但是由于北美目前仍有大量的AMPS系统使用MIN号码,且北美的MDN和MIN采用相同的编号,系统已经无法更改,所以目前国际漫游暂时还是以MIN为主。其…

    Android 2023年4月17日
    00
  • Android报”ClassCastException”如何解决?

    Android中,”ClassCastException”异常表示向下转型时出现类型转换错误。通常情况下,这种错误可能是由于将一个对象引用从其父类转换为其子类时发生的,而该对象实际上不是该子类的实例。此时会抛出ClassCastException异常。 处理”ClassCastException”异常最常见的方法是使用合适的Java类型检查和类型转换技术,以…

    Android 2023年4月3日
    00
  • Android中设置Button为透明

    设置Button为透明状态,有两种最简单的方式: 1. 在layout.xml文件中的Button节点下,设置Button的Alpha属性,因为该属性在0~255范围内取值,0表示完全透明,255表示完全不透明; 但是此方法有一个缺点,当设置为0后,Button上的文字也看不见了。所以在项目中使用了第二种方法。 2. 在layout.xml文件中的Butto…

    Android 2023年4月17日
    00
  • Android Studio相关问题

    下载 去官网下载即可,最新版如果运行不了,可选择安装其他版本,我安装的就是4.0版本 建立项目 一般就是建立一个空项目 如果使用过idea,那么建立项目就很简单。因为Android Studio和 idea 界面都差不多,功能也类似 步骤: File——New——New Project 会出现以下画面: 然后选择 Empty Activity 再点击 Nex…

    Android 2023年5月8日
    00
  • 这种开发方式你了解吗?

    随着移动互联网的发展,移动应用程序的需求越来越高,而原生应用程序的开发成本和时间较高,导致一些企业选择采用H5技术构建应用程序。 但是,H5技术在性能、用户体验、功能等方面仍有局限性,因此,有些企业转而选择「hybrid + 小程序」技术架构来构建应用程序。 相对于H5应用程序,小程序在用户体验、性能、功能等方面有很多优势。首先,小程序不需要像H5应用程序那…

    Android 2023年4月25日
    00
合作推广
合作推广
分享本页
返回顶部