android - 如何使用rxandroid监听gps位置更新

标签 android rx-java rx-android

我最近开始学习响应式编程。在我的应用中,对于很多异步处理数据的情况,我转而使用rxandroid。但是我不知道如何应用到位置监听器。有什么方法可以订阅用户位置更改吗?请给我一个想法。

最佳答案

您可以使用 LocationListener 创建 Observables 或 Subject,当在 onLocationChanged 中获取回调时,只需使用位置对象调用 onNext。

public final class LocationProvider implements onLocationChanged {
   private final PublishSubject<Location> latestLocation = PublishSubject.create();
   //...
   @Override
    public void onLocationChanged(Location location) {
        latestLocation.onNext(location);
    }
}

然后就可以在需要定位的类(class)订阅了。

您还可以使用一些开源库:Android-ReactiveLocationcgeo

另请参阅 Observable-based API and unsubscribe issue

希望这对您有所帮助!

关于android - 如何使用rxandroid监听gps位置更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34367147/

相关文章:

升级到 1.5 后,Android studio IDE 布局发生了变化

java - 如何中断已发布的 Flowable

android - Rxjava zip运算符通过检查第一个Observable的数据来过滤第二个Observable android

android - 将此 AsyncTask 转换为 RxAndroid?

java - 使上传方法返回字符串 "the uploaded file url"

android - 使用 LiveData 作为 Jetpack @Compose 函数内部的状态

android - 基本约束布局(工具栏、 fragment 容器和底部导航)

android - 如何进行两次 Retrofit 调用并合并结果?

java - 为什么返回类型不满足方法签名?

android - RxJava - 如何在 Android 中的 4 个点击事件中调用订阅者