01 rxJava的问题
rxJava没有及时取消订阅可能会造成内存泄漏
disposable是订阅事件,如果在Activity销毁和Fragment销毁时,没有及时取消订阅可能会导致内存泄漏
02 使用代码
public class DemoActivity extends BaseActivity {
private CompositeDisposable mCompositeDisposable = new CompositeDisposable();
private void initConfig(){
startTimer()
}
private void startTimer() {
Disposable subscribe = Observable.intervalRange(0, Integer.MAX_VALUE, 0, 1, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aLong -> {
//your code here
});
mCompositeDisposable.add(subscribe);
}
@Override
protected void onDestroy() {
super.onDestroy();
if (!mCompositeDisposable.isDisposed()) {
mCompositeDisposable.clear();
}
}
}
CompositeDisposable相当于一个容器,可以容纳多个disposable.
03 参考