J'ai le code suivant qui fonctionne comme prévu mais quand je demande de supprimer les mises à jour de localisation en utilisant la méthode stopLocationUpdates
montrée ci-dessous, mon onCompleteListener
attaché removeLocationUpdates
ne se déclenche pas sur la première requête malgré les mises à jour de l'emplacement arrêtées comme requis. Cependant, à la prochaine demande, le rappel onCompleteListener
est déclenché.Quel est le meilleur moyen de recevoir un rappel à la fin de `removeLocationUpdates` de` FusedLocationClientProvider`
/**
* Provides access to the fused location provider API
*/
private FusedLocationProviderClient mFusedLocationClient;
/**
* Removes location updates from the FusedLocationApi
*/
private void stopLocationUpdates() {
if (!mRequestingLocationUpdates) {
// Updates were never requested.
return;
}
// Remove location request when activity is in a paused or stopped state.
mFusedLocationClient.removeLocationUpdates(mLocationCallback)
.addOnCompleteListener(this, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
mRequestingLocationUpdates = false;
}
});
}
vient de tester cela avec l'exemple "LocationUpdates" comme décrit ici: testé à la fois sur l'appareil (Android 5.0) et émulateur (Android 7.0), même mauvais comportement. l'écouteur ne reçoit pas la requête 1. demandée, mais la requête 2. appelle à la fois onComplete et onFailure (signalant déjà un écouteur non enregistré). Lien vers le rapport de bogue: J'espère qu'ils le verront ... –