[英]Android make method run every X seconds (involves gps and server call)
我有一个利基应用程序,需要每隔几秒发送一个服务器的位置。 (不要担心手机的电池寿命)。 我如何每隔几秒钟创建一个线程或某个东西? 我有一个gpslistener,但其子类的名称是"onlocationchanged"
,似乎只想提供信息,如果位置发生变化,我需要每次都发送到服务器的更新位置,但是我定义的间隔
我该怎么做?
洞察力赞赏
将其放在onCreate
服务中。
mTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
// What you want to do goes here
}
}, 0, REFRESH_TIME);
REFRESH_TIME
是run
重复自身的频率或时间(以毫秒为单位)。
你不能只是向android询问当前的位置。 GPS需要一些时间,可能无法使用。 这是在此规定后 。
你可以做的是使用像user500865提到的计时器,然后请求像这样的最后一个已知位置
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 1, this);
Location l = null;
l = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
如果新位置不同或相同,您可以跟踪最后位置并执行一些逻辑。
requestLocationUpdates方法具有以下参数:
minTime - 通知的最小时间间隔,以毫秒为单位。 此字段仅用作节省电量的提示,位置更新之间的实际时间可能大于或小于此值。
minDistance - 通知的最小距离间隔,以米为单位
使用这些来自定义您希望获得位置更新的频率
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.