AndroidObservable.fromBroadcast()、AndroidObservable.bindActivity 方法找不到

    xiaoxiao2025-11-13  5

    1.在0.24.0,rx.android.observables.AndroidObservable 被改为了 rx.android.app.AppObservable,可以使用AppObservable.bindActivity()、AppObservable.bindFragment()、ContentObservable.fromBroadcast()等方法

    compile 'io.reactivex:rxandroid:0.24.0'

    2.在版本1.0.0及其之后,RxAndroid移除了很多这样的方法作为模块化部分只剩下AndroidSchedulers那部分。

    3.如果想使用的话,可以用compile 'io.reactivex:rxandroid:0.23.0'

    4.AndroidObservable.fromBroadcast()可以用RxBroadcast替代。

    需要在buildgradle中添加compile 'com.cantrowitz:rxbroadcast:1.0.0'

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

    5. 从0.25.0到1.x改动很大。

    ①WigetObservable和ViewObservable被并入了RxBinding

    ②LifecycleObservable被移动到了RxLifecycle

    ③ContentObservable.fromSharedPreferencesChanges()被移动到了rx-preferences

    ④ContentObservable还没有被移除

    ⑤AppObservable和与其绑定的方法都被移除了,它有一些问题

    [1]它自动取消订阅,但是只在Activity或者Fragment被暂停后发射数据才会被触发。因此,没有结束的序列有可能永远不会被取消订阅

    [2]它被用来解决在Activity或Fragment被暂停后的提示问题,但这只是HandlerScheduler中的一个不易察觉的逻辑问题

    [3]不论你是否需要在主线程中执行subscriber中的代码,它都会自动调用方法observeOn(AndroidSchedulers.mainThread())方法

    换句话说,它并没有做到像它所声称那样,并且出现了意料之外的副作用。

    ⑥在移除AppObservable之后,需要确保:

    [一]用Subscription或者RxLifecycle来手动取消订阅

    [二]检查你是否需要添加方法observeOn(AndroidSchedulers.mainThread())

    注:参考http://blog.danlew.net/2015/09/01/how-to-upgrade-to-rxandroid-10/

    https://github.com/ReactiveX/RxAndroid/wiki#removed

    转载请注明原文地址: https://ju.6miu.com/read-1304147.html
    最新回复(0)