使用RxJava和Handler重置Message.what值

Rxjava 1.1.8

这个想法是听消息与订阅,但message.what属性来总是0。

 class RxHandler(looper: Looper) : Handler(looper) { val messagesObservable = PublishSubject<Message>() override fun handleMessage(msg: Message?) { super.handleMessage(msg) msg?.let { messagesObservable.onNext(it) } } } 

然后订阅它:

 playbackHandler.messagesObservable .subscribe({ // it.what is always 0 }, { Timber.e(it, "Error on playback handler message handling") }) 

接着:

 playbackHandler.sendEmptyMessage(1) 

然后我得到message.what == 0预期: message.what == 1