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线程解析,让后解析完毕后,回调给主线程,这个时候,卡顿现象会缓解很多!
这个只是一个范例,仅供参考!
1460

被折叠的 条评论
为什么被折叠?



