rengwuxian / RxJavaSamples

RxJava 2 和 Retrofit 结合使用的几个最常见使用方式举例
3.94k stars 858 forks source link

关于Data里的loadFromNetwork的疑问 #25

Open fancyhugo opened 7 years ago

fancyhugo commented 7 years ago

Network.getGankApi() .getBeauties(100, 1) .subscribeOn(Schedulers.io()) .map(GankBeautyResultToItemsMapper.getInstance()) .doOnNext(new Action1<List>() { @Override public void call(List items) { Database.getInstance().writeItems(items); } }) .subscribe(new Action1<List>() { @Override public void call(List items) { cache.onNext(items); } }, new Action1() { @Override public void call(Throwable throwable) { throwable.printStackTrace(); } }); 从网路获取数据后执行doOnNext先写入数据库,然后才执行subscribe里的call,这样就是网络获取数据后先写数据库再更新UI,我理解的没错吧? 实际应用中这种方式应该不可取吧,rxjava新手,这种类型的需求应该很普遍吧,实际应该应该怎么使用呢