Фоновое расположение JobIntentService перестало работать - PullRequest
0 голосов
/ 22 апреля 2020

До этого несколько дней работало фоновое местоположение. Сегодня, когда я отправляю свое приложение в фоновый режим, оно останавливается, а когда я возвращаю его назад, оно запускается снова. У меня нет объяснения.

Это мой JobIntentService

public class LocationBackgroundService extends JobIntentService {

    private FusedLocationProviderClient mFusedLocationProviderClient;
    private LocationCallback mLocationCallback;
    private SettingsClient mSettingsClient;
    private LocationRequest mLocationRequest;
    private LocationSettingsRequest mLocationSettingsRequest;

    @Override
    protected void onHandleWork(@NonNull Intent intent) {
        if (intent.getAction() != null && intent.getAction().equals(Constants.ACTION_GET_LOCATION)) {
            this.setupLocationService();
            this.setupLocationRequest();
            this.setupLocationSettings();
        }
    }

Методы в onHandleWork настраивают FusedLocationProviderClient.

  private void setupLocationService() {
            this.mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
            this.mSettingsClient = LocationServices.getSettingsClient(this);
            this.mLocationCallback = new LocationCallback() {
                @Override
                public void onLocationResult(LocationResult locationResult) {
                    sendLocation(locationResult.getLastLocation());
                }
            };
        }

private void setupLocationRequest() {
            this.mLocationRequest = new LocationRequest();
            mLocationRequest
                    .setInterval(Constants.UPDATE_INTERVAL_IN_MILLISECONDS)
                    .setFastestInterval(Constants.FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS)
                    .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

            LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
            builder.addLocationRequest(mLocationRequest);
            this.mLocationSettingsRequest = builder.build();
        }

Я запросил все разрешения.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
...