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