Chcę zrobić coś takiego:Android aktualizacje lokalizacji w usłudze
Kiedy moi uruchamiany Chcę uruchomić usługę, która powinna sprawdzić, czy moje położenie
Gdy aplikacja przechodzi do tła Chcę zatrzymać usługę
mam dwa główne problemy:
Jak wykryć, że moja aplikacja przechodzi do tła? Nienawidzę kilku działań i próbowałem tego w moim MainActivity nadpisując onPause, ale funkcja onPause jest również wywoływana, gdy zaczynam inną aktywność.
Ten problem jest ważniejszy: Jak powinna wyglądać moja usługa sprawdzająca moją lokalizację? Próbowałem kilku podejść, ale bez powodzenia.
Moja usługa wygląda tak, i to nie działa. Co powinienem zmienić, aby działało?
package com.pivoscore.service;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
public class LocationService extends Service {
private LocationListener locationListener;
@Override
public IBinder onBind(final Intent intent) {
return null;
}
@Override
public int onStartCommand(final Intent intent, final int flags, final int startId) {
super.onStartCommand(intent, flags, startId);
return Service.START_STICKY;
}
@Override
public void onCreate() {
super.onCreate();
final LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
this.locationListener = new MyLocationListener();
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 100, 0, this.locationListener);
}
private static class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(final Location location) {
}
@Override
public void onProviderDisabled(final String provider) {
}
@Override
public void onProviderEnabled(final String provider) {
}
@Override
public void onStatusChanged(final String provider, final int status, final Bundle extras) {
}
}
}
Metoda onResume(), umożliwia wyszukiwanie usługi Informacje o lokalizacji i metodę onPause() usuwa lokalizację. – user2060383
Chcę używać mojej lokalizacji w kilku działaniach, nie tylko w głównej działalności. Więc nie byłoby rozsądnie zatrzymywać usługi w trybie pauzy, ponieważ jeśli inna czynność zostanie osiągnięta, zostanie wywołana opcja onPauza, a ja przestanę pobierać aktualizacje lokalizacji. – ffddani
android.permission.ACCESS_COARSE_LOCATION android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_NETWORK_STATE masz dodany te Permission w pliku manifestu? –