发送到数据库时的 Android GPS 延迟

Posted

技术标签:

【中文标题】发送到数据库时的 Android GPS 延迟【英文标题】:Android GPS Delay When Sending to Database 【发布时间】:2012-03-20 15:08:31 【问题描述】:

我制作了一个 android 应用程序,它将 GPS 坐标发送到 php 脚本(每秒),PHP 脚本将它们发送到数据库进行存储,然后 javascript 程序提取坐标(每秒)并将它们显示在地图上使用标记和折线跟踪用户。

不过,我在应用的可靠性方面遇到了问题。我在我的房间里测试过,我可以很好地接收到位置更新,但是当我今天上课的时候,手机不会发送坐标。我走到外面,立即收到一个信号,我的坐标被发送,然后由 PHP 脚本接收。对此我能做些什么吗?还是在大型建筑物内时我总是会遇到问题?如果有帮助的话,我正在使用 2.2.3。

我遇到的另一个问题是按下按钮和 PHP 脚本接收到坐标之间的时间延迟。数据库记录它们之前大约需要 20-30 秒。我将一些其他数据发送到另一个表,它几乎立即到达数据库。这可能是因为我有太多程序必须通过坐标,还是因为手机必须运行更复杂的过程才能获得坐标,所以时间延迟是可以预料的?有什么办法可以减少这个延迟时间吗?

【问题讨论】:

【参考方案1】:

您应该在客户端(app)和服务器端(php)上调试您的代码。 为每个更新“交易”创建一个唯一 ID 并在两面打印: * 在应用程序中 - 您可以将设备连接到计算机并使用 eclipse 和add debug-printings。如果您希望能够远离计算机 - 您必须在您的 Android 应用上print a log file * 在服务器端您可以使用 microtime() 并打印相关 ID 以及收到请求的时间

【讨论】:

可以做些什么来加快速度?只需几行代码即可使用 PHP 将坐标添加到数据库中。 GPS 是否更有可能只需要一段时间来获取位置? 根据我的经验,GPS 可能需要 2-3 秒到 15-20 秒之间的任何时间(当然也可以超时)。但是,如果你想找到问题的根源,你必须做一些脚力而不是猜测;)

以上是关于发送到数据库时的 Android GPS 延迟的主要内容,如果未能解决你的问题,请参考以下文章

发送和接收意图之间的巨大延迟

获取 GPS 坐标后发送消息

Android:获取 GPS 坐标并将其发送到服务器的服务

停止发送 GPS 坐标 Android

Android广播阻塞、延迟问题

Android 自动消息发送