本文共 2019 字,大约阅读时间需要 6 分钟。
依赖项:
//AutoDispose解决RxJava内存泄漏implementation 'androidx.appcompat:appcompat:1.0.2'implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2'implementation 'com.uber.autodispose:autodispose:1.1.0'implementation 'com.uber.autodispose:autodispose-android:1.1.0'implementation 'com.uber.autodispose:autodispose-android-archcomponents:1.1.0'implementation 'com.uber.autodispose:autodispose-android-archcomponents-test:1.1.0'
代码样例:
Observable.interval(1, TimeUnit.SECONDS) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) //AutoDispose RxJava内存泄漏处理 //.as(AutoDispose.autoDisposable(AndroidLifecycleScopeProvider.from(SecondActivity.this, Event.ON_DESTROY))) .subscribe(new Observer () { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(Long aLong) { } @Override public void onError(Throwable e) { } @Override public void onComplete() { } });使用AndroidStudio中的profile进行内存分析查看:![](https://s1.51cto.com/images/blog/201812/21/34d6c1bfe8d1349c3c5bc1e494fd2cbd.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)点击这个图标启动app,选择你的手机,对应包名,双击MEMORY视图查看使用AutoDispose于不使用的区别看对应类内存是否回收了![](https://s1.51cto.com/images/blog/201812/21/e351f2ccce71828b2e6f9296dc7bfbaa.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)注意点:
项目依赖的是下面这两个,否则直接使用support-v7中的AppCompatActivity调用接口时类型匹配不上implementation 'androidx.appcompat:appcompat:1.0.2'implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2'```
转载于:https://blog.51cto.com/xuguohongai/2333854