До этого несколько дней работало фоновое местоположение. Сегодня, когда я отправляю свое приложение в фоновый режим, оно останавливается, а когда я возвращаю его назад, оно запускается снова. У меня нет объяснения.
Это мой 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" />