【发布时间】:2019-10-18 18:40:57
【问题描述】:
当我创建一个新的观察者作为匿名类型时它工作正常:
Observable<List<Post>> postsListObservable = mApplicationAPI.getPosts();
postsListObservable.
subscribeOn(Schedulers.io()).
observeOn(AndroidSchedulers.mainThread()).subscribe( new Observer<List<Post>>() {
@Override
public void onSubscribe(Disposable d) {
Log.i("ZOKa", "onSubscribe: ");
}
@Override
public void onNext(List<Post> posts) {
Log.i("ZOKa", "onNext: " + posts.size());
}
@Override
public void onError(Throwable e) {
Log.i("ZOKa", "onError: " + e.getMessage());
}
@Override
public void onComplete() {
Log.i("ZOKa", "onComplete: ");
}
});
当我将观察者创建为动态类型时,它不会发出数据
Observable<List<Post>> postsListObservable = mApplicationAPI.getPosts();
postsListObservable.
subscribeOn(Schedulers.io()).
observeOn(AndroidSchedulers.mainThread());
Observer<List<Post>> observer = new Observer<List<Post>>() {
@Override
public void onSubscribe(Disposable d) {
Log.i("ZOKa", "onSubscribe: ");
}
@Override
public void onNext(List<Post> posts) {
Log.i("ZOKa", "onNext: " + posts.size());
}
@Override
public void onError(Throwable e) {
Log.i("ZOKa", "onError: " + e.getMessage());
}
@Override
public void onComplete() {
Log.i("ZOKa", "onComplete: ");
}
};
postsListObservable.subscribe(observer);
logcat为第一个代码sn -p:
com.tripleService.basesetupfordi/I/ZOKa: onSubscribe: com.tripleService.basesetupfordi/I/ZOKa: onNext: 100: com.tripleService.basesetupfordi/I/ZOKa: onComplete:
第二个的Logcat:
com.tripleService.basesetupfordi/I/ZOKa: onError: null
那么,两者之间的区别是什么?
【问题讨论】:
标签: rx-java2 rx-android