mirror of
https://github.com/WuXiaolong/AndroidMVPSample.git
synced 2025-09-18 00:43:39 +08:00
56 lines
1.5 KiB
Java
56 lines
1.5 KiB
Java
package com.wuxiaolong.androidmvpsample.mvp.other;
|
||
|
||
import com.wuxiaolong.androidmvpsample.retrofit.ApiStores;
|
||
import com.wuxiaolong.androidmvpsample.retrofit.AppClient;
|
||
|
||
import rx.Observable;
|
||
import rx.Subscriber;
|
||
import rx.android.schedulers.AndroidSchedulers;
|
||
import rx.schedulers.Schedulers;
|
||
import rx.subscriptions.CompositeSubscription;
|
||
|
||
|
||
/**
|
||
* Created by WuXiaolong
|
||
* on 2015/9/23.
|
||
* github:https://github.com/WuXiaolong/
|
||
* weibo:http://weibo.com/u/2175011601
|
||
* 微信公众号:吴小龙同学
|
||
* 个人博客:http://wuxiaolong.me/
|
||
*/
|
||
public class BasePresenter<V> {
|
||
public V mvpView;
|
||
protected ApiStores apiStores;
|
||
private CompositeSubscription mCompositeSubscription;
|
||
|
||
public void attachView(V mvpView) {
|
||
this.mvpView = mvpView;
|
||
apiStores = AppClient.retrofit().create(ApiStores.class);
|
||
}
|
||
|
||
|
||
public void detachView() {
|
||
this.mvpView = null;
|
||
onUnsubscribe();
|
||
}
|
||
|
||
|
||
//RXjava取消注册,以避免内存泄露
|
||
public void onUnsubscribe() {
|
||
if (mCompositeSubscription != null && mCompositeSubscription.hasSubscriptions()) {
|
||
mCompositeSubscription.unsubscribe();
|
||
}
|
||
}
|
||
|
||
|
||
public void addSubscription(Observable observable, Subscriber subscriber) {
|
||
if (mCompositeSubscription == null) {
|
||
mCompositeSubscription = new CompositeSubscription();
|
||
}
|
||
mCompositeSubscription.add(observable
|
||
.subscribeOn(Schedulers.io())
|
||
.observeOn(AndroidSchedulers.mainThread())
|
||
.subscribe(subscriber));
|
||
}
|
||
}
|