私は以下のコードを持っていますが、私がメソッドを使って位置更新を取り除くよう要求したときには、onCompleteListener
〜removeLocationUpdates
は、必要に応じてロケーション更新が停止しても、最初のリクエストでトリガされません。ただし、次の要求では、onCompleteListener
コールバックがトリガーされます。`FusedLocationClientProvider`の` removeLocationUpdates`の完了時にコールバックを受け取る最良の方法
/**
* 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;
}
});
}
ちょうど "LocationUpdates" の例でこれをテストした: デバイスの両方テストした(5.0アンドロイド)とエミュレーター(アンドロイド7.0)、同じ動作不良。リスナーは1.要求に対して呼び出されませんが、2.要求はonCompleteとonFailureの両方を呼び出します(未登録のリスナーを報告しています)。バグレポートに リンク: 私は、彼らはそれを参照してください願っています... –