Q: 实现定时相服务器查询数据。java
mCompositeSubscription.add( Observable .interval(10,TimeUnit.SECONDS) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .flatMap(new Func1<Long, Observable<SvgDataBean>>() { @Override public Observable<SvgDataBean> call(Long aLong) { mView.showProgress(); return mModel.getSvgRTData().subscribeOn(Schedulers.io()); } }) .map(new Func1<SvgDataBean, String>() { @Override public String call(SvgDataBean svgDataBean) { //处理数据返回json的字符串 String jsCode = ""; String lastTime = MyUtils.simpleDateFormatFullTime.format(svgDataBean.getData().get(0).getLastTime()); String jsonData = new Gson().toJson(svgDataBean); jsCode = ....; return jsCode; } }) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<String>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { mView.hideProgress(); } @Override public void onNext(String s) { mView.hideProgress(); mView.setSvgRtData(s); } } ) );
A: 1. 首先建立在新线程建立一个定时的发射者,每10s发送一次数据,这里设置了主线程,用于显示loading。 2. 而后接收Observevable对象处理数据。json