我尝试在FlowableOnSubscribe
中发送129个事件(其中> 128个),如下所示:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Flowable.create<Int>({
for (index in 1 .. 129) {
Log.d("MainActivity", "emit: $index")
it.onNext(index)
}
it.onComplete()
}, BackpressureStrategy.ERROR).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()).subscribe(object : Subscriber<Int> {
override fun onComplete() {
}
override fun onSubscribe(s: Subscription?) {
s!!.request(Long.MAX_VALUE)
Log.d("MainActivity", "Subscribe!")
}
override fun onNext(t: Int) {
Log.d("MainActivity", "onNext: $t")
}
override fun onError(t: Throwable?) {
t!!.printStackTrace()
}
})
}
我在onSubscribe中请求了Long.MAX_VALUE
,但是为什么这段代码总是导致MissingBackpressureException
? request(Long.MAX_VALUE)
无效?