2017-04-04 81 views
1

我是用在改造和Rx的Java 1这个代码从改造这样调用返回一个可观察:改造2 RxJaxa 1可观察:如何转换到RxJava 2

mCompositeSubscription.add(
       ServiceFactory.createRetrofitService().setLike(mediaId,sessionMgr.getAuthToken()) 
         .subscribeOn(Schedulers.newThread()) 
         .observeOn(AndroidSchedulers.mainThread()) 
       .subscribe(new Subscriber<ResponseBody>() { 
        @Override 
        public final void onCompleted() {} 

        @Override 
        public final void onError(Throwable e) { 

         userMessageHandler.showDialog(mParentActivity,mParentActivity.getString(R.string.error_setting_data_title), 
           mParentActivity.getString(R.string.error_set_like_msg) + e.getMessage(),0); 
        } 

        @Override 
        public void onNext(ResponseBody response) { } 
       }) 
      ); 

我想不通如何将其转换为Java的RX 2.我想出了这一点,但不知道这是正确的:

  .subscribeOn(Schedulers.newThread()) 
       .observeOn(AndroidSchedulers.mainThread()) 
       .subscribe(new DisposableObserver<User>(){ 
        @Override 
        public void onNext(User user) { 
         authMgr.setUser(user); 
        } 
        @Override 
        public void onError(Throwable t) { 
         mProgressDlg.dismiss(); 
         alertDlg.showIt(mResources.getString(R.string.err_register), 
           t.getMessage(), "", 
           "", mParentActivity, JAlertDialog.POSITIVE,null); 
        } 
        @Override 
        public void onComplete() { } 
       }); 

回答

0

我想出了这个,但我仍在测试...

mCompositeDisposable.add(ServiceFactory.createRetrofitService().registerNewUser(BuildConfig.CLIENT_KEY, data.email, 
         data.fname, data.lname, data.birthday,data.city, 
         data.state, mAvatarUrl, coords, Long.toString(mSessionId) , 
         data.pwd, layerMgr.getNonce()) 
         .subscribeOn(Schedulers.newThread()) 
         .observeOn(AndroidSchedulers.mainThread()) 
         .subscribeWith(new DisposableObserver<User>(){ 
          @Override 
          public void onNext(User user) { 

          } 
          @Override 
          public void onError(Throwable t) { 
           mProgressDlg.dismiss(); 
           alertDlg.showIt(mResources.getString(R.string.err_register), 
             t.getMessage(), "", 
             "", mParentActivity, JAlertDialog.POSITIVE,null); 
          } 
          @Override 
          public void onComplete() { } 
         }));