0 0

手机定时发送数据 间断问题 困扰了1个月30

困扰了我1个月的问题

实现效果:手机10分钟一次往服务器端发送数据 0点开始到24点结束

程序逻辑:首先AlarmManager 1S一次执行Service   onStart里start一个Thread 把当前时间戳+1000 通过一个方法getTimeDifference根据现在的时间点来计算离下次发送还有多少S 假设现在是10:15 下次发送是在10:20分 那么getTimeDifference会返回300 然后当getTimeDifference返回0的时候 向服务器发送数据 发送用的是HttpClient Post提交 如果发送不成功那么程序会等待30秒后重试 重复10次 如果还是不成功那么会缓存到本地 在下个时间点能够发送时发送缓存数据。

 

出现问题:程序在市内信号好的地方发送数据是不会间断的 然后在一些开发区人烟稀少的地方 就会出现没有数据上传的情况 比如说12:10 - 12:20 - 12:30 - 12:40 - 13:00 中间就会少掉一个12:50的那个点 时间点是随机的 检查过服务端接收没有问题 确实是数据没有上来

大家有没有什么意见或者遇到过类似的问题 麻烦告诉我一下 谢谢!

1个答案 按时间排序 按投票排序

0 0

楼主想要实现什么效果?不是太明白。
首先,信号不好的地方,在某一次发送时确实是会失败。这个没办法。能做的是待网络恢复后把之前失败的数据重新发送。
解决办法:
1,捕获这个异常(比如网络连接中断或者超时)
2,出现数据发送失败的异常后,保存此次需要发送的数据,和应当发送此条数据的时间点。可以保存在数据库中,便于查询操作。
3,下一次发送时,如果网络恢复了,把之前发送失败的数据都从数据库读出来,再次发送。
关键就是在本地数据库中记录发送失败的时间点。
按自己的理解说了下,说错了勿怪。

2014年4月08日 11:09

相关推荐

    Qt UDP定时发送数据报并实现计数

    创建一个QTimer对象,并使用start()方法设置一个合适的间隔时间,比如每秒发送一次数据报。然后,连接QTimer的timeout()信号到一个槽函数,这个槽函数会负责发送UDP数据报。 3. **构建数据报**: 在发送数据报的...

    socket定时发送数据小程序

    本项目“socket定时发送数据小程序”正是这样一个专注于通过定时器发送数据的应用。在这个程序中,我们利用了Socket接口来建立客户端与服务器端的连接,并通过定时器(Timer)实现周期性地发送数据。 首先,我们要...

    c# 定时器 ,定时提交数据

    在C#编程中,定时器(Timer)是一个非常重要的组件,它允许我们在特定的时间间隔执行某段代码,例如定期检查数据库、发送邮件、更新UI或执行任何其他周期性任务。定时器类在System.Timers和System.Threading命名空间...

    c#两串口通讯,定时发出数据,接收数据处理并将其输出到chart图表上(折线图),最后保存图表。

    通过以上步骤,你就可以构建一个能够与两个串口通信,定时发送和接收数据,将数据展示在Chart图表上,并能保存图表的C#程序。这将为你提供一个实时监测和分析串口数据的工具,有助于各种监控和控制任务的实施。

    安卓手机定时发送短信 手机助手 防盗

    首先,定时发送短信功能允许用户预先设定一个时间点,系统会在指定时间自动发送预设的短信内容。这在很多场景下非常有用,例如提醒、预约或者在不方便手动操作时发送信息。实现这一功能通常需要开发者利用Android...

    博主推荐C# Winform定时发送邮箱(附源码)

    【博主推荐】C# Winform定时发送邮箱(附源码),1.支持对oracle数据定时查询,然后把查询结果发送邮箱;2.灵活可配置,日志目录,数据库相关连接,展示的字段,展示的格式,发送的邮箱,表格的风格等; 3.可以在此...

    新浪微博可定时发送微博版本手机客户端apk

    定时发送功能是微博客户端中一个非常实用的特性,尤其对于那些需要在特定时间发布信息的用户来说,如企业宣传、新闻更新或者个人日程分享等。 首先,我们需要了解什么是apk文件。Apk是Android操作系统中应用程序的...

    TCPUDP服务管理3.01修改定时发送BUG 增加发送数据区简体中文绿色免费版

    此外,绿色免费版的特性,表明该软件无需安装,下载即用,且不含有任何收费功能,对于个人用户和小型企业而言,无疑是一个经济实惠的选择。 该工具可能包含的功能还包括: 1. **端口扫描**:检测指定范围内的网络...

    java邮箱,手机,定时发送的全部jar

    在Java编程中,发送电子邮件是一项常见的任务,尤其在自动化任务、通知系统或者服务监控中。为了实现这个功能,我们需要依赖一些特定的库或jar文件。标题提到的"java邮箱,手机,定时发送的全部jar"是指用于Java实现...

    QT打开二进制文件,串口分包定时发送

    创建一个QTimer对象,设置合适的间隔时间,连接到一个信号槽,当计时器超时时触发相应的槽函数,执行发送数据的操作。 7. **事件循环和信号槽机制**:QT的事件驱动模型是基于事件循环的,所有的用户交互和定时器...

    Qt蓝牙串口源码支持十六进制发送、字符发送、定时发送

    【Qt蓝牙串口源码支持十六进制发送、字符发送、定时发送】是一个适用于嵌入式硬件开发的项目,尤其适合使用STM32微控制器的系统。该项目利用Qt框架提供了串口通信功能,并且增加了对十六进制和字符发送的支持,还...

    QT打开二进制文件,串口分包定时发送,qt串口发送数据,QT源码.zip.zip

    创建一个QTimer对象,设置计时器触发信号与发送数据的槽函数关联,通过QTimer::start()启动定时器。这样,每隔设定的时间间隔,槽函数就会被调用,从而实现定时发送数据。 6. **QT源码分析**:压缩包中的源码可能...

    QT串口工具,增加定时发送及超时接收功能

    首先,定时发送功能允许用户设置一个特定的时间间隔,然后工具将按照这个间隔自动发送预设的数据。这种功能对于那些需要周期性发送数据的场合非常有用,比如自动化测试、远程监控或数据采集系统。用户可以在设置界面...

    虚拟串口并定时向虚拟串口定时发数据

    标题中的“虚拟串口并定时向虚拟串口定时发数据”是一个关于计算机通信技术的话题,主要涉及虚拟串口(Virtual Serial Port)技术和定时任务的实现。在IT领域,虚拟串口是一种模拟真实串口功能的软件技术,它使得两...

    JAVA将一个数据中数据定时自动复制(抽取)到另一个数据库

    本文将深入探讨如何使用Java编程语言实现从一个数据库中定时自动抽取数据并复制到另一个数据库,以达到数据库间的实时或近实时同步。 首先,我们需要了解基础概念。Java是一种广泛使用的面向对象的编程语言,具有...

    09 canOpen PDO定时发送.zip

    6. **PDO定时发送**:在STM32F4上实现PDO定时发送,通常会在一个单独的定时器中断服务程序中进行。当定时器达到预设值时,调用Canfestival提供的API发送TPDO。注意,根据CANopen标准,PDO的发送间隔应大于1ms。 7. ...

    C#实现定时发送邮件功能

    在本示例中,我们关注的是如何利用C#实现一个定时发送邮件的功能。这个功能通常在需要定期向用户发送通知、报告或其他重要信息的场景下非常有用。我们将探讨以下几个关键知识点: 1. **System.Net.Mail**: 这是.NET...

    QQ消息定时发送器

    QQ消息定时发送器是一款专为QQ用户设计的小型应用程序,主要功能是模拟键盘输入,实现自动定时发送消息。由于QQ的对话框控件是通过图形绘制而非标准窗口控件实现的,因此直接操作控件句柄较为困难。这款工具巧妙地...

    电子邮件定时发送

    3. **定时任务调度**:为了实现定时发送,我们需要一个任务调度器,比如Linux的cron job,Windows的任务计划程序,或者在编程语言中使用如Python的`APScheduler`库。这些工具能根据预设的时间间隔或特定时间触发邮件...

    android 定时发送短信源码

    `onReceive()`方法是接收广播的关键,你可以在这里启动一个新的Service或者Activity来执行发送短信的逻辑。 `ContactsAdapter.java`可能涉及到的是联系人选择的功能。在Android应用中,如果需要让用户从他们的联系...

Global site tag (gtag.js) - Google Analytics