Rxjava 1.0 与Rxjava2.0 项目中一段代码的不同点记录

Rxjava 2.0

Observable.fromIterable(list)
                .subscribeOn(Schedulers.io())
                .doOnSubscribe(new Consumer<Disposable>() {
                    @Override
                    public void accept(Disposable disposable) throws Exception {
                        markerOptionsList.clear();
                    }
                })
                .flatMap(new Function<MaintenanceMap, ObservableSource<MarkerOptions>>() {
                    @Override
                    public ObservableSource<MarkerOptions> apply(MaintenanceMap entity) throws Exception {
                        LatLng llB = new LatLng(Double.parseDouble(entity.getY()), Double.parseDouble(entity.getX()));
                        return Observable.just(createMarkers(llB, entity, Overlay_Index));
                    }
                })
                .filter(new Predicate<MarkerOptions>() {
                    @Override
                    public boolean test(MarkerOptions markerOptions) throws Exception {
                        return markerOptions != null;
                    }
                })
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Consumer<MarkerOptions>() {
                    @Override
                    public void accept(MarkerOptions markerOptions) throws Exception {
                        markerOptionsList.add(markerOptions);
                    }
                }, new Consumer<Throwable>() {
                    @Override
                    public void accept(Throwable throwable) throws Exception {

                    }
                }, new Action() {
                    @Override
                    public void run() throws Exception {
                        // 设置地图中心点
                        maintenanceMap.setCenter(markerOptionsList.get(0));
//                        // 设置其他地图点
                        maintenanceMap.updateMap(markerOptionsList);
                        maintenanceList.updateList(maintenanceMapList);
                    }
                });

Rxjava 1.0

Observable.from(list)
                .subscribeOn(Schedulers.io())
                .doOnSubscribe(new Action0() {
                    @Override
                    public void call() {
                        markerOptionsList.clear();
                    }
                })
                .flatMap(new Func1<MaintenanceMap, Observable<MarkerOptions>>() {
                    @Override
                    public Observable<MarkerOptions> call(MaintenanceMap entity) {
                        LatLng llB = new LatLng(Double.parseDouble(entity.getY()), Double.parseDouble(entity.getX()));
                        return Observable.just(createMarkers(llB, entity, Overlay_Index));
                    }
                })
                .filter(new Func1<MarkerOptions, Boolean>() {
                    @Override
                    public Boolean call(MarkerOptions markerOptions) {
                        return markerOptions != null;
                    }
                })
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber<MarkerOptions>() {
                    @Override
                    public void onCompleted() {
                        // 设置地图中心点
                        maintenanceMap.setCenter(markerOptionsList.get(0));
//                        // 设置其他地图点
                        maintenanceMap.updateMap(markerOptionsList);
                        maintenanceList.updateList(maintenanceMapList);
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onNext(MarkerOptions markers) {
                        markerOptionsList.add(markers);
                    }
                });

以前的写法:

markerOptionsList.clear();

        for (int i = 0; i < list.size(); i++) {
            MaintenanceMap entity = list.get(i);
            LatLng llB = new LatLng(Double.parseDouble(entity.getY()), Double.parseDouble(entity.getX()));
            MarkerOptions markerOptions = createMarkers(llB, entity, Overlay_Index);
            if (markerOptions != null){
                markerOptionsList.add(markerOptions);
            }
        }
        // 设置地图中心点
        maintenanceMap.setCenter(markerOptionsList.get(0));
//                        // 设置其他地图点
        maintenanceMap.updateMap(markerOptionsList);
        maintenanceList.updateList(maintenanceMapList);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值