Я пытаюсь реализовать прослушиватель местоположения GPS, который будет оставаться и постоянно обновлять в фоновом режиме. Я понимаю, что это плохая практика, но я делаю это для целей тестирования. Прямо сейчас у меня есть слушатель местоположения, который вызывается с помощью getGPS (). Его также можно убить с помощью killGPS ().
Он отлично работает, когда я иду, и я нажимаю кнопку «Получить GPS», которая берет широту и долготу из моего параметра местоположения, который я получаю из
GPSActivity.getGPS();
loc_listener = GPSActivity.loc_listener;
locationManager = (LocationManager)
getSystemService(LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
0, 0, loc_listener);
location=locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Однако на заднем плане иногда говорят, что я все еще в своей квартире, хотя я отсутствовал 3 часа!
Почему мой слушатель местоположения не обновляется, даже если он включается для поиска нового местоположения каждые 10 минут?
Спасибо
package com.cellphone;
import android.app.Activity;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
public class GPSActivity extends Activity{
public static LocationListener loc_listener = null;
public static void getGPS() {
if (loc_listener == null) {
loc_listener = new LocationListener() {
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
};
}
}
public static void killGPS(LocationManager locationManager) {
if (locationManager != null && loc_listener != null) {
locationManager.removeUpdates(loc_listener);
}
}
}