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

相關文章
相關標籤/搜索