public interface ApiService {
@FormUrlEncoded
@POST("{url}")
Observable<ResponseBody> doPost(@Path(value = "url",encoded = true) String url, @FieldMap Map<String,String> map);
}
//retrofit2
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
//fresco加载图片
compile 'com.facebook.fresco:fresco:1.3.0'
//recyclerview
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
//rxjava
compile 'io.reactivex.rxjava2:rxjava:2.1.6'
//okhttp
compile 'com.squareup.okhttp3:okhttp:3.9.0'
compile 'com.squareup.okio:okio:1.13.0'
//retrofit2adapter
compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
compile 'io.reactivex.rxjava2:rxandroid:2.0.2'
//model层要实现
public interface BaseModel {
void getDataFromNet(String url, Map<String, String> map);
void unsubcribe();
}
//P层要实现的接口
public interface PresenterInter {
void onSuccess(ResponseBody responseBody);
void onError(Throwable e);
void getDataFromNet(String url, Map<String, String> map);
void unsubcribe();
}
//recyclerView点击事件
public interface OnItemListner {
void onItemListener(View view,int position);
}
Activity用于销毁
@Override
protected void onDestroy() {
super.onDestroy();
mainpresenter.unsubcribe();//解除订阅
if (mainpresenter.isViewAttached()) {//如果产生关联
//解除关联
mainpresenter.detachView();
}
}
Presenter调用销毁
public void detachView() {//解除关联
if (mViewRef != null) {
mViewRef.clear();
mViewRef = null;
}
}