在android中定期发送当前位置到服务器
我必须定期向服务器发送当前位置详细信息(纬度和经度)(例如:每 5 分钟一次)。有什么最好的办法吗?我知道如何获取当前位置和位置如何将详细信息发送到服务器。但如何定期重复此操作呢?
I have to send my current location details (lat & long) to server periodically (Ex: for every 5 minutes). Is there any best way? I know how to get the current location & how to send the details to server. But how do I repeat this in periodic intervals?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
使用
AlarmManager
注册一个闹钟,以便在用户第一次打开应用程序时 5 分钟后唤醒。创建一个服务(获取位置并更新到服务器)以在警报通知您的应用程序时运行。服务完成工作后,5分钟后再次注册闹钟唤醒。通过这种方式你可以完成你的任务。ref
Android:如何定期向服务器发送位置
http://developer.android.com/reference/android/app/AlarmManager.html
http://developer.android.com/reference/android/app/Service.html
第一次编辑 - 添加代码示例
第 1 步 - 创建警报管理器并注册警报
第 2 步 - 创建接收器类
Setp 3 - 创建Service类
步骤4 - 注册服务和接收者
注意:这段代码是为了理解实现。它不会编译。
Register an alarm using
AlarmManager
to wake up after 5min when user open the application first time. create a service(fetch location and update to server) to run when alarm notifies your application. After the service finished the work , register for an alarm again to wake up after 5min. by this way you can achieve your task.ref
Android: How to periodically send location to a server
http://developer.android.com/reference/android/app/AlarmManager.html
http://developer.android.com/reference/android/app/Service.html
1st Edit - Adding code sample
Step 1 - Create alarm manager and register alarm
Step 2 - Create Receiver class
Setp 3 - Create Service class
Step 4 - Register service and receiver
Note : This code is to understand the implementation. It will not compile.
使用 BroadcastReceiver
是发送定期请求的不错选择。
这里是使用 BroadcastReceiver 的教程。
Using BroadcastReceiver
is a good choice for sending periodic requests.
Here is a tutorial to use BroadcastReceiver.
使用
AlarmManager
唤醒服务并将您获得的位置发布到服务器的最佳方法。Best way to wakeup the service using the
AlarmManager
and post the location you get to the server.由于它不需要 UI 交互,因此您应该为此创建一个服务,服务将调用 requestLocationUpdates 方法,在此方法中,传递参数最短时间为 5 分钟。
As it does not require UI interaction you should create a service for this, service will invoke requestLocationUpdates method, in this method, pass parameter minimum time to 5 mins.
我正在开发一个应用程序,可以在服务中全天 10 到 15 秒内获取手机的位置,它工作正常,但有时网络提供商侦听器的 OnLocationChanged 方法停止被调用。
I am developing an application that gets position of the cell phone all day long in 10 and 15 seconds in a service, it works fine but sometimes the method OnLocationChanged of the Network provider listener stop to being called.