【问题标题】:Where can AndroidObservable.fromBroadcast be found now?AndroidObservable.fromBroadcast 现在在哪里可以找到?
【发布时间】:2016-01-03 10:40:40
【问题描述】:

在 1.0.0 之前,AndroidObservable 类在 RxAndroid 中有 fromBroadcast 方法,用于以反应方式订阅广播。 Grokking RxJava中提到过:

我也喜欢AndroidObservable.fromBroadcast(),它允许您创建一个类似于BroadcastReceiverObservable。这是一种在网络连接发生变化时收到通知的方法:

IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
AndroidObservable.fromBroadcast(context, filter)
                 .subscribe(intent -> handleConnectivityChange(intent));

在 1.0.0 之后,RxAndroid 删除了很多功能并拆分为 RxAndroid 本身,现在只有线程的东西,RxLifecycleRxBindings

它们似乎都不包含AndroidObservablefromBroadcastfromSharedPreferenceChange

它是否在一些实际且受支持的库中实现?

【问题讨论】:

    标签: java android broadcastreceiver rx-java


    【解决方案1】:

    此功能was removed in 1.0 release 是模块化工作的一部分。您可以在RxBroadcast 中找到替代品。要使用它,请将依赖项添加到 build.gradle:

    compile 'com.cantrowitz:rxbroadcast:1.0.0'
    

    并按如下方式使用:

    Observable<Intent> = RxBroadcast.fromBroadcast(context, intentFilter);
    

    【讨论】:

    • 在哪里可以找到任何适用于 RxAndroid 的文档?
    • RxAndroid 现在是一个很小的库,你可以在不到一个小时的时间内了解它的源代码。所有其他模块,如前面提到的 RxBroadcastRxLifecycleRxBinding 都存在于它们自己的存储库中,并具有相当好的自述文件。
    • RxBroadcast 只有 29 颗星,好像用的人不多。我应该使用它吗?
    • 这是一个很小的库,代码状态良好,似乎得到了维护。我会说是的,使用它几乎没有风险。
    【解决方案2】:

    简而言之,它已被删除,我还不知道有什么替代品。

    您可以看到 here 将其重命名为 AppObservable,然后 here 已在 1.0 版本中删除,他们在其中做了一些清理工作。

    似乎出现了一些严重的问题。

    【讨论】:

    • said 已被删除以实现更好的模块化。正如the other answer 中所说,它现在可以在 RxBroadcast 中使用。不过感谢您的努力。
    猜你喜欢
    • 2019-05-01
    • 1970-01-01
    • 2012-11-30
    • 2011-08-22
    • 2014-12-14
    • 2012-05-04
    • 2014-01-17
    • 2011-11-13
    • 2014-11-01
    相关资源
    最近更新 更多