Android RxJava 非UI线程解析数据 示例

 

 disposableCheckSmall = Single.create(new SingleOnSubscribe<Integer>() {
            @Override
            public void subscribe(SingleEmitter<Integer> emitter) throws Exception {
                List datas = panelAdapter.getDatas();
                Object o1 = datas.get(0);
                Object o2 = datas.get(datas.size() - 1);
                if (o1 instanceof xxxBean&& o2 instanceof YYYbean) {
                    xxxBean panel1 = (xxxBean) o1;
                    YYYbean panel2 = (YYYbean) o2;
                   
                  //to  do  somethiing ....

                    for (Object o : datas) {
                        if (o instanceof zzzBean) {
                            zzzBean panel = (zzzBean) o;
                            int code = Integer.parseInt(panel.getCode());
                            if (code > min)
                                panel.setCheck(false);
                            else panel.setCheck(true);
                        }
                    }
                }
                emitter.onSuccess(0);
            }
        }).observeOn(AndroidSchedulers.mainThread()).subscribeOn(Schedulers.newThread()).subscribe(new Consumer<Integer>() {
            @Override
            public void accept(Integer i) throws Exception {
                panelAdapter.notifyDataChanged();
                Apollo.emit(HHHHFragment.CALCULATE);
                disposableCheckSmall.dispose();
                disposableCheckSmall = null;
            }
        });

   这样解析数据的好处是,当后台返回大量的数据,如果全部放在UI线程解析,很可能造成UI线程的堵塞,造成界面卡顿,所以把这些放在非UI线程解析,让后解析完毕后,回调给主线程,这个时候,卡顿现象会缓解很多!

这个只是一个范例,仅供参考!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值