【问题标题】:How to get notified when different events happened with RxJava?当 RxJava 发生不同事件时如何得到通知?
【发布时间】:2018-08-26 15:38:03
【问题描述】:

我有一个使用 Google 地图和位置更新的应用。我还为我的应用调用了两个包含重要信息的 API。 当所有这些案例都完成时,我需要一些方法来获得通知:

  1. 谷歌地图已加载。
  2. 我知道了我的当前位置。
  3. 我已经对 API 进行了两次调用。

我尝试使用 RxJava 和 Retrofit 进行异步调用,并收到一个 Observable 的通知,但我不知道如何确定地图何时加载以及何时获得我的当前位置。

有没有办法使用 Rxjava 来实现?或者有没有其他方法可以在所有这些事件完成时收到通知?

【问题讨论】:

  • 我认为 onMapReady & onLocationResult 可以解决你的问题
  • 从这些事件中创建 observable 并使用 zip 运算符
  • 嗨@than,我怎样才能从这两个事件中创建一个 observable:地图已加载并获得我的当前位置?我知道一旦我被订阅了,我就会启动所有的 observable,但是这两个事件一旦完成就会被调用,所以我的 observable 会一直等待它们,直到它们通知一些东西,对吧?

标签: android rx-java rx-android android-location android-maps-v2


【解决方案1】:

对于加载的谷歌地图,您可以使用来自RxGoogleMapsMapReady。注意:该库没有得到积极维护,因此也许您应该检查实现并重用您需要的部分。

位置可以使用RxLocation

对于 API 调用,您可以使用 Retrofit 提供的 Observable 支持。

要合并结果,您可以使用zip operator

【讨论】:

    猜你喜欢
    • 2017-10-18
    • 2022-07-22
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多