Retrofit应该是目前Android上最流行的网络框架之一了。那么怎么管理他的生命周期呢,总不能在每个引用的Activity或Fragment生命周期中都去手动cancel网络请求吧。接下来介绍几种实用的方法。
1.借助rxjava,CompositeSubscription类。
CompositeSubscription是Subscriptions的集合类,用于取消订阅操作。可集成在BaseActivity/BaseFragment用于统一管理。
首先将接口封装为Observable,用于添加进compositeSubscription
@GET(Config.CITYS)
Observable> citys();
其次在BaseActivity/BaseFragment统一管理composieSubcription
public abstract class BaseActivity extends Activity{
private CompositeSubscription mCompositeSubscription;
public CompositeSubscription getCompositeSubscription() {
if (this.mCompositeSubscription == null) {
this.mCompositeSubscription = new CompositeSubscription();
}
return this.mCompositeSubscription;
}
public void addSubscription(Subscription s) {
if (this.mCompositeSubscripti