如何不断地将 GPS 数据从 android 发送到服务器,直到应用程序关闭

Posted

技术标签:

【中文标题】如何不断地将 GPS 数据从 android 发送到服务器,直到应用程序关闭【英文标题】:How to send GPS data from android to server constantly until app close 【发布时间】:2011-10-10 17:23:48 【问题描述】:

我想让我的应用在登录后不断在后台向服务器发送 GPS 数据,直到应用关闭..

我使用 locationManager 发送 GPS 数据....

我开始考虑手动线程,AsynTask 来处理它....

问题:

locationManager.requestLocationUpdates(provider, 60, 5, this); 它会在 60 毫秒后自动更新???

有没有什么好的策略来获取 GPS 数据并在后台不断将其发送到服务器,直到应用关闭?

【问题讨论】:

Dude 请记住,任何在合理时间内使用您的应用程序的设备都会遇到严重的电池耗尽问题。 :P 【参考方案1】:

在后台启动一个 android 服务(android sdk 类),该服务会自动将 HTTP POST 发送到具有您从 LocationManager 类获取的位置的 Web 服务。您可以将每个唯一位置保存在 SQLite 数据库中,以便发送每个位置。如果与服务器的连接被终止,SQLite 数据库可以保留数据,直到重新建立连接。

【讨论】:

这很有帮助,顺便说一句,任何关于它的教程,..,。谢谢zzz 对于 SQLite 数据库,我会查看 developer.android.com 网站上的记事本教程。对于 Web 服务,这将取决于您想使用什么来创建您的 Web 服务。我喜欢使用 WCF .NET Web 服务。 我忘了提到您的服务应该在单独的线程中运行。除非您使用 IntentService,否则它不会自动执行此操作。 是的,但不应该。您要么需要创建在后台线程中运行的 IntentService,要么需要创建自己的线程以在后台运行普通服务。如果您在主线程中运行服务,则会导致 UI 出现一些问题。【参考方案2】:

locationManager.requestLocationUpdates(provider, 60, 5, this); 60毫秒后会自动更新???

是或直到它识别出至少 5 米的距离差,以先发生者为准。

有没有什么好的策略来获取 GPS 数据并在后台不断将其发送到服务器,直到应用关闭?

您可以使用 http 套接字。 http://socket.io/ 套接字很有趣:Good beginners tutorial to socket.io?

【讨论】:

当它意味着自动更新时,我需要在后台将它发送到服务器,我该怎么做,创建线程??? AsyncTask 将自动在新线程中运行所有内容:) 我放一个链接是有原因的:)

以上是关于如何不断地将 GPS 数据从 android 发送到服务器,直到应用程序关闭的主要内容,如果未能解决你的问题,请参考以下文章

如何将用户的GPS位置与可用的GPS位置进行比较?

如何在不刷新页面的情况下将数据从 Android 发送到 PHP 并显示

如何使用 PHP 从设备接收 GPS 数据?

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

如何使用PHP从设备接收GPS数据?

没有互联网连接时如何将gps位置存储到android中的服务器