【发布时间】:2011-10-10 17:24:59
【问题描述】:
我有一个服务运行这个线程来获取 GPS 坐标
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
GpsListener gpsLocationListener = new GpsListener();
long minTime = 5000; // 5 sec for test purposes...
float minDistance = 1;
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime,
minDistance, gpsLocationListener);
当然我的gpsLocationListener 看起来像这样:
class GpsListener implements LocationListener{
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
latitude = location.getLatitude();
longitude = location.getLongitude();
//float speed = location.getSpeed();
checkin();
}
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
// TODO Auto-generated method stub
}
}
onLocationChanged 方法在获取纬度和经度后将其发送到服务器。
不幸的是,这种方法在我的测试中没有像我希望的那样可靠运行,我基本上起身四处走动,看看它是否记录了我的位置已经改变。
如果另一个函数在 X 秒内没有更新,我该如何运行它。这个不同的函数只会发送最后一个已知的坐标?
感谢您的洞察力!
【问题讨论】:
标签: android multithreading gps listener coordinates