(1)前景
在使用rxjava的时候,如果没有及时解除订阅,在退出activity的时候,异步线程还在执行。
对activity还存在引用,此时就会产生内存泄漏。
AutoDispose就是为了解决rxjava导致的内存泄漏而产生的。
(2)添加依赖
implementation 'com.uber.autodispose:autodispose-android-archcomponents:1.0.0-RC2'
(3)使用
Observable
.interval(1000, TimeUnit.MILLISECONDS)
//AutoDispose的关键语句
.as(AutoDispose.<Long>autoDisposable(AndroidLifecycleScopeProvider.from(this)))
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
Log.d("aaa", String.valueOf(aLong));
}
});
只需要添加一句话即可。