完成FusedLocationClientProvider的removeLocationUpdates时收到回调的最佳方式
我有以下代码正在按预期方式工作,但当我请求使用下面显示的stopLocationUpdates
方法删除位置更新时,我的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;
}
});
}
我没有50个repts。发表评论,所以我在这里写下我的评论。
如果添加.addOnFailureListener,它会在第二张照片上报告这样的错误吗?
W/System.err: com.google.android.gms.common.api.ApiException: 13: listener already unregistered
RG
更新2017年4月17日:
新增.addOnFailureListener(getActivity(),新OnFailureListener()...)和.addOnSuccessListener(getActivity(),新OnFailureListener()。 ..),发现以下几点:
三个(包括初始addOnCompleteListener(getActivity(),新OnCompleteListener()...))听众在那里叫这个(第一)圣雷莫的无veLocationUpdate请求。
-
在第二次请求,addOnCompleteListener听者其中第一被叫(所有似乎确定),随后再onFailureListener听者与以下错误:
W/System.err的:com.google.android.gms.common。 api.ApiException:13:听众已经注册的
看来,听众没有得到第一回调,直到第二个请求,并调用(是否堆积在一些堆栈?)(正确?) errorlistener告诉听众已经取消注册...
怪异......还是不是?
无论如何,我会提交一个bugreport,如果它尚未完成。
我使用v11.4.2 firebase,v11.4.2 play-services,v26.1.0 android.support和com.google.gms:google-services的v3.1.1。
RG如这里所述
只是用 “LocationUpdates” 实施例中测试的: 设备上测试的两种(机器人5.0)和仿真器(Android 7.0),同样的错误。监听器不会被请求调用,但是2.请求调用onComplete和onFailure(报告已经注册的监听器)。 链接到错误报告: 我希望他们看到它... –