У меня есть служба, которая запускает эту ветку для получения координат 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 секунд? Эта другая функция просто отправит последние известные координаты?
Понимание ценится!