RxJava 全国卷
2020-07-29 本文已影响0人
Android那些事儿
上岗先考试。
道路千万条,“线程安全” 第一条。行车不规范,CaseStudy 两行泪!!!
runOnUiThread(new Runnable() {
@Override
public void run() {
rxJavaExamination();
}
});
private void rxJavaExamination() {
Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> emitter) throws Exception {
Log.d("hlwang", "111 isMainThread : " + (Thread.currentThread() == Looper.getMainLooper().getThread()));
emitter.onNext("第一级主题");
emitter.onComplete();
}
})
.subscribeOn(AndroidSchedulers.mainThread())
.doOnSubscribe(new Consumer<Disposable>() {
@Override
public void accept(Disposable disposable) throws Exception {
Log.d("hlwang", "222 isMainThread : " + (Thread.currentThread() == Looper.getMainLooper().getThread()));
}
})
.observeOn(Schedulers.io())
.doOnNext(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
Log.d("hlwang", "333 isMainThread : " + (Thread.currentThread() == Looper.getMainLooper().getThread()));
}
})
.subscribeOn(Schedulers.newThread())
.doOnSubscribe(new Consumer<Disposable>() {
@Override
public void accept(Disposable disposable) throws Exception {
Log.d("hlwang", "444 isMainThread : " + (Thread.currentThread() == Looper.getMainLooper().getThread()));
}
})
.observeOn(Schedulers.io())
.subscribe(new Observer() {
@Override
public void onSubscribe(Disposable d) {
Log.d("hlwang", "555 isMainThread : " + (Thread.currentThread() == Looper.getMainLooper().getThread()));
}
@Override
public void onNext(Object o) {
Log.d("hlwang", "666 isMainThread : " + (Thread.currentThread() == Looper.getMainLooper().getThread()));
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
A :
555 isMainThread : true
444 isMainThread : true
222 isMainThread : false
111 isMainThread : true
333 isMainThread : false
666 isMainThread : false
B :
111 isMainThread : true
222 isMainThread : false
333 isMainThread : false
444 isMainThread : true
555 isMainThread : true
666 isMainThread : false
C :
444 isMainThread : true
555 isMainThread : true
222 isMainThread : false
111 isMainThread : true
333 isMainThread : false
666 isMainThread : false
D :
111 isMainThread : true
222 isMainThread : false
444 isMainThread : true
555 isMainThread : true
333 isMainThread : false
666 isMainThread : false
E :
以上,无正确答案,我要评论正确答案