Android Retrofit 定时查询 的方法

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

相关文章
相关标签/搜索