我有一个提供PublishSubject
作为Observable
的类:
val eventsObservable: Observable<Event>
get() = eventsSubject.hide()
private val eventsSubject = PublishSubject.create<Event>()
在我的ViewModel
中,我在主线程上订阅了eventsObservable
,例如:
eventsObservable
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({}, {})
但是,onNext
()从未这样被调用。仅当我将subscribeOn
更改为 IO 线程时。
对于.subscribeOn(AndroidSchedulers.mainThread())
,PublishSubject.hasObservers()
始终返回false
。
订阅和事件发出是在主线程上执行的。
所以我的问题是-为什么会发生这种事情?我有一些主意,但不确定。