创建1参考: https://blog.csdn.net/whjk20/article/details/107468612
链式调用创建
private fun testCreateChain() {
Observable.create(object : ObservableOnSubscribe<Int> {
override fun subscribe(emitter: ObservableEmitter<Int>) {
Log.d(
TAG,
"testCreateChain - Observable===== subscribe-currentThread name=${Thread.currentThread().name}"
)
emitter.onNext(1);
emitter.onNext(2);
emitter.onNext(3);
emitter.onComplete()
}
}).subscribe(object : Observer<Int> {
override fun onComplete() {
Log.d(TAG, "testCreateChain - Observer===== onComplete")
}
override fun onSubscribe(d: Disposable) {
Log.d(
TAG,
"testCreateChain - Observer===== onSubscribe currentThread name=${Thread.currentThread().name}"
)
}
override fun onNext(t: Int) {
Log.d(TAG, "testCreateChain - Observer===== onNext parm = $t")
}
override fun onError(e: Throwable) {
Log.d(TAG, "testCreateChain - Observer===== onError")
}
})
}
输出:
07-21 09:47:36.544 D 23315 23382 RxJavaTest: testCreateChain - Observer===== onSubscribe currentThread name=Instr: androidx.test.runner.AndroidJUnitRunner
07-21 09:47:36.544 D 23315 23382 RxJavaTest: testCreateChain - Observable===== subscribe-currentThread name=Instr: androidx.test.runner.AndroidJUnitRunner
07-21 09:47:36.545 D 23315 23382 RxJavaTest: testCreateChain - Observer===== onNext parm = 1
07-21 09:47:36.545 D 23315 23382 RxJavaTest: testCreateChain - Observer===== onNext parm = 2
07-21 09:47:36.545 D 23315 23382 RxJavaTest: testCreateChain - Observer===== onNext parm = 3
07-21 09:47:36.545 D 23315 23382 RxJavaTest: testCreateChain - Observer===== onComplete
Observable.just()创建
创建一个被观察者并且发送事件 (不超过十个事件)
private fun testJust() {
// 创建一个被观察者并且发送事件 (不超过十个事件)
Observable.just(1, 2, 3)
.subscribe(object : Observer<Int> {
override fun onComplete() {
Log.d(TAG, "testJust - Observer===== onComplete")
}
override fun onSubscribe(d: Disposable) {
Log.d(
TAG,
"testJust - Observer===== onSubscribe currentThread name=${Thread.currentThread().name}"
)
}
override fun onNext(t: Int) {
Log.d(TAG, "testJust - Observer===== onNext parm = $t")
}
override fun onError(e: Throwable) {
Log.d(TAG, "testJust - Observer===== onError")
}
})
}
输出:
07-21 09:47:36.545 D 23315 23382 RxJavaTest: testJust - Observer===== onSubscribe currentThread name=Instr: androidx.test.runner.AndroidJUnitRunner
07-21 09:47:36.545 D 23315 23382 RxJavaTest: testJust - Observer===== onNext parm = 1
07-21 09:47:36.545 D 23315 23382 RxJavaTest: testJust - Observer===== onNext parm = 2
07-21 09:47:36.545 D 23315 23382 RxJavaTest: testJust - Observer===== onNext parm = 3
07-21 09:47:36.545 D 23315 23382 RxJavaTest: testJust - Observer===== onComplete
可以看出当发送少量事件时,使用just 还是挺方便的