Android Rxjava subscribe to a variable change

前端 未结 3 945
故里飘歌
故里飘歌 2020-12-14 06:09

I am learning Observer pattern, I want my observable to keep track of a certain variable when it changes it\'s value and do some operations, I\'ve done something like :

3条回答
  •  没有蜡笔的小新
    2020-12-14 07:09

    If interested here a Kotlin version of Variable class, which lets subscribers to be updated after every variable change.

    class Variable(private val defaultValue: T) {
    var value: T = defaultValue
        set(value) {
            field = value
            observable.onNext(value)
        }
    val observable = BehaviorSubject.createDefault(value)
    }
    

    Usage:

    val greeting = Variable("Hello!")
    greeting.observable.subscribe { Log.i("RxKotlin", it) }
    greeting.value = "Ciao!"
    greeting.value = "Hola!"
    

    This will print:

    "Hello!"
    "Ciao!"
    "Hola!"
    

提交回复
热议问题