Android 如何用RxJava观察boolen场

Android 如何用RxJava观察boolen场,android,observable,rx-java,Android,Observable,Rx Java,在我的类Foo中,我有一个boolen字段。当字段更改时,我将在类Bar 如何在Android中用RxJava实现这一点?我想您必须创建一个包含主题的类Foo class Foo { var booleanField: Boolean = false set(value) { field = value observable.onNext(value) } val observable = BehaviorSubject.creat

在我的类
Foo
中,我有一个boolen字段。当字段更改时,我将在类
Bar

如何在Android中用RxJava实现这一点?

我想您必须创建一个包含主题的类
Foo

class Foo {
    var booleanField: Boolean = false
    set(value) {
        field = value
        observable.onNext(value)
    }
    val observable = BehaviorSubject.createDefault(booleanField)
}
然后你必须在
Boo
课堂中观察这个主题

class Boo(val observable: BehaviorSubject<Boolean>) {
    var booleanField: Boolean = false
    var disposable: Disposable? = null

    fun startObserve() {
        disposable?.dispose()
        disposable = observable.subscribe {
            booleanField = it
        }
    }

    fun finishObserve() {
        disposable?.dispose()
        disposable = null
    }
}
现在,如果您更改
foo.booleanField
boo.booleanField
也将更改。 如果需要,可以在构造函数中运行startObserve,以便在创建实例后立即启动它。 可能您必须在其他地方创建
BehaviorSubject
,然后使用DI传递给这两个类。 工作结束后别忘了退订

val foo = Foo()
val boo = Boo(foo.observable)
boo.startObserve()

foo.booleanField = true //boo is changed to true too