Rxjava2-Mvp-Dagger2-Retrofit 实现真正解耦的mvp 架构,可用于初始项目框架

git地址:https://github.com/PearceXu/Rxjava2-mvp-dagger2-retrofit

Rxjava2-mvp-dagger2-retrofit

实现真正解耦的mvp 架构,可用于初始项目框架

觉得好用的同学请右上角随手star 一下,谢谢!

将retorfit2 与 rx2 进行封装 提供自带 progress 的 Observer

mvp解耦

原理图:

在这里插入图片描述

具体实现请下载代码查看(记得帮我点个Star,谢谢!)

    //View层注入
    @Inject
    IMVP.IMainPresenter mPresenter;// 声明接口
    
        DaggerMainConponent// 注入实现类
                .create()
                .inject(this);
    //Presenter层注入
    @Inject
    IMVP.IMainView mView;// 声明接口

    @Inject
    IMVP.IMainModule mModule;// 声明接口
   
      DaggerMainConponent// 注入
                .create()
                .inject(this);

如果需要实现这种数据处理只需要重写观察Observe者使用泛型写,这个项目里暂时不加上这个

{
“Data”: [
{
“ParkId”: 1,
“ParkName”: “sample string 2”,
“ParkCode”: “sample string 3”
},
null
],
“Code”: 0,
“Message”: “sample string 1”,
“Success”: true
}

代码示例:

自带进度加载圈

ApiClient.getApiService(ApiService.MainService.class)
                .getInfo("北京")
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new ProgressSubscriber<>(mView.getContext(), new SubscriberOnNextListener<String>() {
                    @Override
                    public void onNext(String s) {

                    }
                }));

不带进度加载圈

ApiClient.getApiService(ApiService.MainService.class)
                .getInfo("北京")
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new ComSubscriber<>(mView.getContext(), new SubscriberOnNextListener<String>() {
                    @Override
                    public void onNext(String s) {

                    }
                },null));

统一异常处理

@Override
 public void catchException(Throwable e) {
      if (e instanceof SocketTimeoutException) {
          //"网络中断,请检查您的网络状态"
      } else if (e instanceof SocketException || e instanceof UnknownHostException) {
          //"网络中断,请检查您的网络状态"
          Toast.makeText(mContext, mContext.getString(R.string.no_network), Toast.LENGTH_SHORT).show();
      } else {
          Toast.makeText(mContext, "error:" + e.getMessage(), Toast.LENGTH_SHORT).show();
          final String erroLog  = getErroLog(e);
          Log.e(TAG,erroLog);
      }
  }
  ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值