kotlin - 订阅功能不起作用
问题描述
我正在尝试 RxJava2 的基础知识。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_vogella)
setSupportActionBar(toolbar)
val todoObserverable= createObservable();
try {
todoObserverable
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe ({ t-> Log.e(TAG,t.title)}, {e-> Log.e(TAG,e.localizedMessage)})
}catch (e:Exception){
e.printStackTrace()
}
}
获取可观察函数:
fun createObservable():Observable<Book>{
val bookObservable: Observable<Book> = Observable.create { object :ObservableOnSubscribe<Book>{
override fun subscribe(emitter: ObservableEmitter<Book>) {
Log.e(TAG,"anc")
try {
val bookArrayList:ArrayList<Book> = ArrayList()
val bookOne= Book("XYZ")
val bookTwo= Book("ANC")
val bookThree= Book("3ewrXYZ")
val bookFour= Book("XwerweYZ")
bookArrayList.add(bookOne)
bookArrayList.add(bookTwo)
bookArrayList.add(bookThree)
bookArrayList.add(bookFour)
for (todo in bookArrayList){
emitter.onNext(todo)
Log.e(TAG,"on next")
}
emitter.onComplete()
}catch (e:Exception){
e.printStackTrace()
}
}
}
}
return bookObservable;
}
但我无法打印书名。它没有给我任何错误或异常。我试图调试 createObservable() 但光标没有进入订阅函数。任何提示都会有所帮助。
解决方案
Observable.create { object :ObservableOnSubscribe<Book>{
- 这实质上是ObservableOnSubscribe
在ObservableOnSubscribe
. 对象声明是多余的,或者您可以删除 lambda 定义。( Observable.create(object : ETC)
)
推荐阅读
- c++ - 类头:错误:编译时“char”之前的预期不合格ID
- python - 带有预填充数据的 WTForms
- docker - 如果可能在 GitLab CI 中的作业 exe 之前运行 Docker Compose 命令
- python - pip 安装到 .local 并为多个平台编译二进制文件?
- css - Material UI Chip deleteIcon css问题
- arrays - 3D 数组输出对于预测 LSTM 模型中的 3D 数组输入是否正确?
- sql - 避免 Oracle SQL 中的重复表达式
- python - 如何从 zip 存档中运行 python 代码
- javascript - 如何更改 WPForms 默认验证消息?
- docusignapi - 为什么在我使用 Docusign api 创建信封时它显示错误?