我在Android应用程序中有一项服务,我必须每隔10分钟向服务器发送一次位置更新。我为此打了一个休息服务。只有在位置发生变化时,它才会每隔10分钟向服我想在没有位置更改时将最后已知的位置更新发送到服务器。任何人都可以建议我如何做到这一点或任何一个例子将是有益的.. 提前致谢
答案 0 :(得分:0)
你有getLastKnownLocation
方法:
Criteria criteria = new Criteria();
String provider = mLocationManager.getBestProvider(criteria, false);
Location location = mLocationManager.getLastKnownLocation(provider);
顺便说一下,你可以为样本配置Criteria
:
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setCostAllowed(false);
如果您想将最后一个已知位置与onLocationChanged
绑定,请致电:
this.onLocationChanged(location);
答案 1 :(得分:0)
为此你必须使用服务。
并尝试获取后台的位置,并继续检查它,以便在服务中使用处理程序每10分钟运行一次线程,并维护一个变量,它保存以前的位置值。当你到达这个位置时检查那个值。
查看此示例以获取位置
http://javapapers.com/android/get-current-location-in-android/
用活动写的,你必须使用服务。
答案 2 :(得分:0)
我正在做一些非常相似的事情,无论何时地点改变我都将它存储在名为Long和Lat的双打中。我只需要在需要时检查这些变量。
答案 3 :(得分:0)
我的建议是使用共享偏好。
在将位置发送到serever之前,将其存储在sharedpreferences中。您可以直接从存储的共享偏好中获取服务器或LocationManager作为最后位置。