【发布时间】:2018-08-29 17:05:57
【问题描述】:
当改造调用不成功(例如因为没有互联网)时,按预期调用 RXJava 回调onError,其中我有一个Snackbar 和一个setAction() 侦听器,用直观的字符串“重试”指示我应该在哪里传递一个命令来重新开始网络调用。
我可以重新启动我在里面调用它NameActivity() 的类,但这看起来很糟糕。我可以在Snackbar 侦听器中传递哪个命令来重新启动下面的代码?
MyViewModel!!.getPost("132")
?.subscribeOn(schedulerProvider!!.io())
?.observeOn(schedulerProvider!!.ui())
?.doOnNext {
run {
spinner.setVisibility(View.VISIBLE)
}
}
?.subscribe(object : FlowableSubscriber<List<Post>> {
override fun onError(t: Throwable?) {
spinner.setVisibility(View.GONE)
spinner.visibility
Snackbar.make(view.findViewById(R.id.linearLayout), "Check Internet Connection!", Snackbar.LENGTH_INDEFINITE)
.setAction("Retry", {})//HERE THE COMMAND SHOULD PASS
.show();
}
override fun onComplete() {
Log.d("TAG", "onComplete: ")
}
override fun onSubscribe(s: Subscription) {
s.request(Long.MAX_VALUE);
}
override fun onNext(posts: List<Post>?) {
spinner.setVisibility(View.GONE)
posts?.let { viewAdapter.setTitleData(it) }
}
})
}
【问题讨论】:
标签: android rx-java retrofit2 rx-java2 onerror