Rx java RxJava share()未按预期工作
我有一项活动,我正在做以下工作Rx java RxJava share()未按预期工作,rx-java,Rx Java,我有一项活动,我正在做以下工作 fun getJust(): Observable<String> { Log.e("TEST", "getting just") return Observable.just("ABC") } private fun stream(): Observable<String> { return getJust() .doOnSubscribe
fun getJust(): Observable<String> {
Log.e("TEST", "getting just")
return Observable.just("ABC")
}
private fun stream(): Observable<String> {
return getJust()
.doOnSubscribe { Log.e("TEST", "OnSubscribe") }
.doOnDispose { Log.e("TEST", "OnDispose") }
.doOnNext { Log.e("TEST", "OnNext") }
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val st = stream()
.share()
val success = st
.map { "Success" }
val fail = st
.map { "Fail" }
Observable.merge(success, fail)
.subscribe()
}
实际日志:
2020-02-25 15:11:20.202 1015-1015/com.example.rxretrytest E/TEST: getting just
2020-02-25 15:11:20.263 1015-1015/com.example.rxretrytest E/TEST: OnSubscribe
2020-02-25 15:11:20.264 1015-1015/com.example.rxretrytest E/TEST: OnNext
2020-02-25 15:11:20.264 1015-1015/com.example.rxretrytest E/TEST: OnSubscribe
2020-02-25 15:11:20.265 1015-1015/com.example.rxretrytest E/TEST: OnNext
我有以下问题:
getJust()
函数只被调用一次,因为stream()
只被调用一次。“getJust”在可观察链之外。getJust()
函数只调用一次,因为stream()
只调用一次。
2020-02-25 15:11:20.202 1015-1015/com.example.rxretrytest E/TEST: getting just
2020-02-25 15:11:20.263 1015-1015/com.example.rxretrytest E/TEST: OnSubscribe
2020-02-25 15:11:20.264 1015-1015/com.example.rxretrytest E/TEST: OnNext
2020-02-25 15:11:20.264 1015-1015/com.example.rxretrytest E/TEST: OnSubscribe
2020-02-25 15:11:20.265 1015-1015/com.example.rxretrytest E/TEST: OnNext