场景 - 我有一个基于计时器的事件线程,我通过发布请求发送数据(纬度和经度)。我有一个 onLocationChange 方法(我的类在 LocationListener 上实现),它在位置更改时被调用。它设置新的纬度和经度值,稍后应由计时器事件调用。
计时器事件不会在位置更改事件中获取最新的纬度和经度值。当计时器事件开始时,即使位置发生变化,它也不会调用 onlocationchange 方法。
这是计时器事件:
/** 此方法每 10 秒调用一次服务。*/
protected void timerMethod(CookieStore cookieStore, String url) {
int delay = 1000; // delay for 1 sec.
int period = 10000; // repeat every 10 sec.
timer = new Timer();
if (timer != null) {
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
timerThread = new Thread() {
@Override
public void run() {
sendpostRequest(); // calling the post method
}
};
timerThread.start();
}
}, delay, period);
}
}
这是位置更改事件:
/** 当位置改变时调用此方法。*/
public void onLocationChanged(Location location) {
isLocationChanged = true; // setting a boolean value which is checked while posting the request
System.out.println();
System.out.println("Location change:::longitude::::" + location.getLongitude() + "latiude::::"
+ location.getLatitude());
latClient = location.getLatitude();
longClient = location.getLongitude();
}