Я хочу сделать что-то вроде этого:
-
Когда мое приложение запускается, я хочу запустить службу, которая должна проверять мое местоположение
-
Когда приложение переходит в фоновый режим, я хочу остановить службу
У меня две основные проблемы:
-
Как я могу обнаружить, что мое приложение переходит в фоновый режим? Я выполняю несколько действий, и я попробовал это в моей MainActivity переопределить onPause, но onPause также вызывается, когда я запускаю другое действие.
-
Эта проблема важнее: как должна выглядеть моя Служба, которая проверяет мое местоположение? Я пробовал несколько подходов, но не добился успеха.
Моя служба выглядит так, и она не работает. Что я должен изменить, чтобы заставить его работать?
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) {
}
}
}