java - FusedLocationClient 故障排除服务中断场景
问题描述
我目前能够在服务可用时接收位置更新,但如果服务不可用,我需要得到响应,以便我可以调用另一种方法来处理这种情况。从我收集到的信息来看,就使用 requestLocationUpdates() 而言,这是我必须使用的仅有的两种方法 onLocationResult() 和 onLocationAvailability()。我从 onLocationAvailabilty 得到的响应似乎不是很准确,如果我真的停止服务,这个方法可能不会被 fusedLocationClient 调用一段时间。我的另一个问题是 onLocationResult 似乎没有让我知道是否没有结果,这对我来说非常有用。了解 fusedLocationClient 是否找不到位置或当前停止服务的最佳方法是什么?位置可用性。
mFusedLocationClient.requestLocationUpdates(mLocationRequest, callback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
// do work here
onLocationChanged(locationResult.getLastLocation());}
@Override
public void onLocationAvailability(LocationAvailability locationAvailability) {
}
}, Looper.myLooper());
}
解决方案
因此,我发现的最佳解决方案是实现 LocationListener 并利用 onStatusChanged() 方法,该方法在用户退出服务时给出响应,并在他们重新投入服务时再次给出响应。
推荐阅读
- javascript - 如何编写任意长的 Promise 链
- python - 从上述文件夹导入模块不适用于 CI 服务器
- python - 考虑引号的字符串拆分
- vba - 如何从列中查找特定文本并仅一一删除多行中的该文本
- spring - 考虑将其中一个 bean 标记为 @Primary,更新使用者以接受多个 bean,或者使用 @Qualifier 来识别应该是的 bean
- php - 如何使用循环或函数简化此代码?
- c# - 字符串和解析的正确格式
- php - 使用关系 eloquent laravel 搜索时如何获取数据
- c# - 填充二维数组编译器告诉我我正在引用一个不存在的对象
- javascript - 将一些代码从 jQuery 重写为 JS (ReactJS)