Запуск locationManager из службы
Этот код в Activity работал нормально.
Создал в приложении службу, перенес код в нее, и он перестал работать. Сама служба стартует и работает. Чего ей не хватает?
public class LocService extends Service {
private LocationManager locationManager;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Запустить поток в фоновом режиме для обработки.
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
1000, 50, locationListener);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
1000, 50, locationListener);
return Service.START_STICKY;
}
private LocationListener locationListener = new LocationListener() {
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onLocationChanged(Location location) {
// Код в данном месте не вызывается ни при каких обстоятельствах
}
};
}
Источник: Stack Overflow на русском