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

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

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

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

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

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

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

时间: 2024-09-14 07:28:15

android短信数据库监听回调多次问题的相关文章

详解Android短信的发送和广播接收实现短信的监听_Android

本文介绍了Android短信的发送和广播接收者实现短信的监听,要注意Android清单中权限的设置以及广播的注册监听实现,废话不多说,代码如下: 以下就是 Android清单的XML AndroidManifest.xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zyw.broadcastsendsms" android:versionC

详解Android短信的发送和广播接收实现短信的监听

本文介绍了Android短信的发送和广播接收者实现短信的监听,要注意Android清单中权限的设置以及广播的注册监听实现,废话不多说,代码如下: 以下就是 Android清单的XML AndroidManifest.xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zyw.broadcastsendsms" android:versionC

短信被动监听的问题

问题描述 在一定范围内(如方圆100米)利用手机改装或者笔记本加外附设备等截获该区域内所有短信信号,通过解码软件同步解码,从而实现该区域内的短信监听.请各位高手帮忙QQ11560318详谈. 解决方案 解决方案二:牛!!!解决方案三:这个很厉害,违法的吧?解决方案四:牛啊!!!要通过信号解码哦!!解决方案五:这个高端啊路过...解决方案六:该回复于2012-04-18 08:24:49被版主删除解决方案七:楼主你想做什么?

Android短信接收监听、自动回复短信操作例子_Android

定义广播接收器的Action: 复制代码 代码如下: private static final String TAG ="SmsService";/*** 信息发送状态广播*/private static final String ACTION_SMS_SEND  = "com.SmsService.send";  /*** 信息接收状态广播*/private static final String ACTION_SMS_DELIVERY = "com.S

Android短信接收监听、自动回复短信操作例子

定义广播接收器的Action:复制代码 代码如下:private static final String TAG ="SmsService";/*** 信息发送状态广播*/private static final String ACTION_SMS_SEND  = "com.SmsService.send";  /*** 信息接收状态广播*/private static final String ACTION_SMS_DELIVERY = "com.Sms

android导出的短信数据库

问题描述 android导出的短信数据库 求助:android短信数据库原来一直导出都正常,现在怎么是这样的了呢? 解决方案 [android]android短信数据库表Android短信数据库简析android 短信数据库 结构 解决方案二: 这样了,是哪样了? 提供系统版本和手机型号. 曾经亲身经历过,android2.3到4.0短信数据库的变更. 解决方案三: 不好意思,把短信数据库和联系人数据库弄混了

短信拦截-android BroadcastReceiver中拦截短信后如何给回调activity

问题描述 android BroadcastReceiver中拦截短信后如何给回调activity (4.3之前的)应该是调用接口,但具体的回调接口不清楚,也不清楚如何自动刷新 解决方案 Android-拦截短信(BroadcastReceiver)Android手机短信拦截---BroadcastReceiver(一) 解决方案二: // 注册接收.监听短信receiver smsReceiver = new SMSReceiver(); IntentFilter receiverFilter

android开发 短信数据库的问题

问题描述 android开发 短信数据库的问题 类似于12306的分开两条发过来的短信,在数据库中会以哪种方式存储?是一条记录还是两条记录? 解决方案 你说的是,很长的那种短信被截取成两条的情况吧,一般都是存一整条的,可以参考下: 解决方案二: 一般都是一整条的,主要看你客户需求 解决方案三: 一条好些,不然你是不是还得记录两条的关系? 解决方案四: 数据库里面存的是一条 解决方案五: 记录的是一条,但是分两条显示给你

Android黑科技之读取用户短信+修改系统短信数据库_Android

安卓系统比起ios系统最大的缺点,相信大家都知道,就是系统安全问题.这篇博客就秀一波"黑科技". 读取用户短信 Android应用能读取用户手机上的短信,相信已经不是什么新鲜事,比如我们收到的短信验证码,一些app马上就能自动获取并填上验证码,省去我们手动填写验证码.原理就是通过Android的ContentProvider组件间接访问系统的短信数据库,获取所有短信内容.下面来演示一下.         布局很简单,如下:   代码如下: public class MainActivi