MVP+被观察者 请求网络数据的套路
首先是model层
@Override public void getFWQVersionCode(Observer observer) { OkHttpClient client=new OkHttpClient.Builder().build(); RetrofitManager.getInstance(APIUrl.CHECKVERSIONURL,client) .setCreate(APIService.class) .check().observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()) .subscribe(observer); }
然后presenter层这么玩
model.getFWQVersionCode(new Observer<VersionBean>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { message.what=ENTER_HOME; handler.sendMessage(message); } @Override public void onNext(VersionBean bean) { int mVersionCode = model.getVersionCode(); aVersionBean=bean; Log.i("+mVersi+", "onNext: "+mVersionCode); ToastUtil.showToast(context,bean.getVersionCode()+""); if (mVersionCode<Integer.parseInt(bean.getVersionCode())){ //showUpdataDialog(bean); message.what=UPDATE_VERSION; }else{ message.what=ENTER_HOME; } handler.sendMessage(message); } });然后是一堆依赖
dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:25.+' implementation 'com.android.support.constraint:constraint-layout:1.0.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:0.5' androidTestImplementation 'com.android.support.test.espresso:espresso-core:2.2.2' implementation 'com.squareup.retrofit2:retrofit:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.3.0' implementation 'io.reactivex:rxjava:1.3.3' implementation 'io.reactivex:rxandroid:1.2.1' implementation 'com.squareup.retrofit2:adapter-rxjava:2.3.0' implementation 'com.jiechic.library:xUtils:2.6.14' compile 'com.github.bumptech.glide:glide:3.7.0' implementation 'com.android.support:recyclerview-v7:25.+' }
话不多说 会不会看造化,自用的模版