Полагаю, вам нужно создать класс Foo
с предметом внутри
class Foo {
var booleanField: Boolean = false
set(value) {
field = value
observable.onNext(value)
}
val observable = BehaviorSubject.createDefault(booleanField)
}
Затем вы должны наблюдать за этим предметом внутри Boo
class
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 и передайте его в Boo:
val foo = Foo()
val boo = Boo(foo.observable)
boo.startObserve()
foo.booleanField = true //boo is changed to true too
Теперь, если вы измените foo.booleanField
, boo.booleanField
также изменится.Если вам нужно, вы можете запустить startObserve в конструкторе, чтобы запустить его сразу после создания экземпляра.Может быть, вам нужно создать BehaviorSubject
где-то еще и просто перейти на оба класса, используя DI.И не забудьте отписаться после окончания работы.