摘要:本文将带你了解Android应用开发Android:Retrofit+RxJava+MVP+网络请求判断,希望本文对大家学Android有所帮助。
本文将带你了解Android应用开发Android:Retrofit+RxJava+MVP+网络请求判断,希望本文对大家学Android有所帮助。
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("product/getProductCatagory")
Flowable
}
//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
}
//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,Map
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,Map
}
//Model
body{ }
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号