Android应用开发Android:Retrofit+RxJava+MVP+网络请求判断
白羽 2019-05-20 来源 :网络 阅读 1643 评论 0

摘要:本文将带你了解Android应用开发Android:Retrofit+RxJava+MVP+网络请求判断,希望本文对大家学Android有所帮助。

    本文将带你了解Android应用开发Android:Retrofit+RxJava+MVP+网络请求判断,希望本文对大家学Android有所帮助。


Android应用开发Android:Retrofit+RxJava+MVP+网络请求判断


Android:Retrofit+RxJava+MVP+网络请求判断
   
    //依赖
   

    compile 'io.reactivex.rxjava2:rxjava:2.1.1'
      compile   'io.reactivex.rxjava2:rxandroid:2.0.1'
      compile   'com.squareup.retrofit2:retrofit:2.0.0'
      compile   'com.squareup.retrofit2:converter-gson:2.0.2'//解析使用
      compile   'com.squareup.retrofit2:adapter-rxjava2:2.3.0'//与RxJava结合时使用
    //Retrofit
    //ApiService
   

    public interface ApiService {
          //https://120.27.23.105/product/getProductCatagory?cid=1
          @GET("product/getProductCatagory")
        Flowable  get(@QueryMap Mapmap);
     
          @GET("product/getProductCatagory")
        Flowable  get2(@QueryMap Mapmap);
     
      }

    //RetrofitUtils
   

 
    public class RetrofitUtils {
        private static volatile   RetrofitUtils instance;
        private final Retrofit   retrofit;
     
        private RetrofitUtils(String   baseurl) {
            retrofit = new   Retrofit.Builder()
                      .baseUrl(baseurl)
                      .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
        }
     
        public static RetrofitUtils   getInstance(String baseurl) {
            if (instance == null) {
                synchronized (RetrofitUtils.class)   {
                    if (instance == null)   {
                        instance = new   RetrofitUtils(baseurl);
                    }
                }
            }
            return instance;
        }
     
        public Retrofit   getretrofit(){
            return retrofit;
        }
     
    }
    //presenter
    //BasePresenter
   

    public interface BasePresenter {
        void get(String baseurl,Map  map, int tag);
    }

    //Presenter
   

    public class Presenter implements BasePresenter{
     
        private IView iv;
        private DisposableSubscriber   subscriber;
     
        public Presenter(IView iv)   {
            this.iv = iv;
        }
     
        @Override
        public void get(String   baseurl,Mapmap,int tag) {
            Model model = new   Model(this);
              model.get(baseurl,map,tag);
        }
     
        public void getData(Flowable   flowable,final int tag){
            subscriber =   (DisposableSubscriber) flowable.subscribeOn(Schedulers.io())
                      .observeOn(AndroidSchedulers.mainThread())
                    .subscribeWith(new   DisposableSubscriber() {
                        @Override
                        public void onNext(Object   o) {
                              iv.onSuccess(o,tag);
                        }
     
                        @Override
                        public void   onError(Throwable t) {
                              iv.onFailed((Exception) t);
                        }
     
                        @Override
                        public void   onComplete() {
     
                        }
                    });
        }
     
     
     
        public void getData1(Flowable   flowable,final int tag){
            subscriber =   (DisposableSubscriber) flowable.subscribeOn(Schedulers.io())
                      .observeOn(AndroidSchedulers.mainThread())
                    .subscribeWith(new   DisposableSubscriber() {
                        @Override
                        public void   onNext(Object o) {
                              iv.onSuccess(o,tag);
                        }
     
                        @Override
                        public void   onError(Throwable t) {
                              iv.onFailed((Exception) t);
                        }
     
                        @Override
                        public void   onComplete() {
     
                        }
                    });
        }
     
     
     
     
     
     
        //防止内存泄漏
        public void detatch(){
            if (iv != null) {
                iv = null;
            }
            if(subscriber!=null){
                  if(!subscriber.isDisposed()){
                      subscriber.dispose();
                }
            }
        }
     
    }
   

    //model
    //IModel

    public interface IModel {
        void get(String   baseurl,Mapmap,int tag);
    }

    //Model
   

    body{ }   


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程