Я использую менеджер работ для запуска служб определения местоположения, он загружает метод doWork()
после каждого 15 minutes
, но не выполняет onLocationChanged
.
До того, как я использовал Job Scheduler, он работал нормально.
Следующий код также работает нормально, если я отображаю уведомление от диспетчера работ через 15 минут.
Это мой код.
public class LocationWorker extends Worker implements LocationListener, GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener{
private static final long BACKGROUND_INTERVAL = 1000 * 60 * 60;
final private String TAG = LocationUpdateService.class.getSimpleName();
LocationRequest mLocationRequest;
GoogleApiClient mGoogleApiClient;
@NonNull
@Override
public Result doWork() {
if (isGooglePlayServicesAvailable()) {
mGoogleApiClient = new GoogleApiClient.Builder(GlobalApplication.getAppContext())
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
mGoogleApiClient.connect();
jwtToken = getJWTToken();
}
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(BACKGROUND_INTERVAL);
mLocationRequest.setFastestInterval(BACKGROUND_INTERVAL);
mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
return null;
}
@Override
public void onLocationChanged(Location location) {
String storedLat, storedLng;
//...
}