zoukankan      html  css  js  c++  java
  • RxJava Rxandroid retrofit

    其实Retrofit会了。集合RxJava,RxAndroid 就很简单了。
    只需要改几个地方。
    1。接口里面返回的对象不再是 call,而是Observable

    public interface ApiService {
      /*  @GET("service/getIpInfo.php")
        Call<GetIpInfoResponse> getIpInfo(@Query("ip") String ip);*/
    
        @GET("service/getIpInfo.php")
        Observable<GetIpInfoResponse> getIpInfo(@Query("ip") String ip);
    }

    2.使用的时候注册 一个监听器 addCallAdapterFactory

    Retrofit retrofit = new Retrofit.Builder()
                            .baseUrl(ENDPOINT)
                            .addConverterFactory(GsonConverterFactory.create())
                            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                            .build();

    3.使用 得到的结果处理

     ApiService apiService = retrofit.create(ApiService.class);
                    apiService.getIpInfo("63.223.108.42")
                            .subscribeOn(Schedulers.io())
                            .observeOn(AndroidSchedulers.mainThread())
                            .subscribe(new Subscriber<GetIpInfoResponse>() {
                                @Override
                                public void onCompleted() {
                                    mProgressBar.setVisibility(View.GONE);
                                }
    
                                @Override
                                public void onError(Throwable e) {
                                    mProgressBar.setVisibility(View.GONE);
                                    mTvContent.setText(e.getMessage());
                                }
    
                                @Override
                                public void onNext(GetIpInfoResponse getIpInfoResponse) {
                                    mTvContent.setText(getIpInfoResponse.data.country);
                                }
                            });

    真的,我试过了。RxJava 比纯retrofit快很多。真的是,同样的网络请求,感觉倒很快,有的很垃圾。

  • 相关阅读:
    Buffer lock
    union all合并记录
    欢迎您在新浪博客安家
    热点块引发的cache buffers cahins latch
    linux下能ping ip不能ping域名详解
    简易计算器页面
    学生管理系统报错(一)
    低效的SQL引发的cache buffers chains latch
    常用监控SQL
    C/C++ XMPP/Jabber 客户端类库对比/点评
  • 原文地址:https://www.cnblogs.com/caoxinyu/p/6647876.html
Copyright © 2011-2022 走看看