MVP Arms

MainInfoPresenter
 public void getInfoData(){
        Observable<ResponseBody> observable = mModel.requestData();
        observable.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Consumer<ResponseBody>() {
                               @Override
                               public void accept(ResponseBody responseBody) throws Exception {
                                   String responsString = responseBody.string();
                                   mRootView.showData(responsString);

                               }
                           }, new Consumer<Throwable>() {
                               @Override
                               public void accept(Throwable throwable) throws Exception {
                                   String responsString = throwable.getMessage();
                                   //回传V层
                                   mRootView.showData(responsString);
                               }
                           }

                );



    }
MainInfoContract
public interface MainInfoContract {
    //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
    interface View extends IView {
        //数据回显
        public void showData(String msg);
    }

    //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
    interface Model extends IModel {
        public Observable<ResponseBody> requestData();
    }

 

MainInfoModel
package mymvpdome.bwei.com.mymoduel.mvp.model;

import android.app.Application;

import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;

import com.jess.arms.di.scope.ActivityScope;

import javax.inject.Inject;

import io.reactivex.Observable;
import mymvpdome.bwei.com.mymoduel.mvp.contract.MainInfoContract;
import mymvpdome.bwei.com.mymoduel.mvp.model.api.service.InfoService;
import okhttp3.ResponseBody;


@ActivityScope
public class MainInfoModel extends BaseModel implements MainInfoContract.Model {
    @Inject
    Gson mGson;
    @Inject
    Application mApplication;

    @Inject
    public MainInfoModel(IRepositoryManager repositoryManager) {
        super(repositoryManager);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        this.mGson = null;
        this.mApplication = null;
    }

    @Override
    public Observable<ResponseBody> requestData() {
        InfoService infoService = mRepositoryManager.obtainRetrofitService(InfoService.class);
        Observable<ResponseBody> observable = infoService.getData();
        return observable;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值