温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

AutoDispose解决RxJava内存泄漏

发布时间:2020-06-03 05:18:08 来源:网络 阅读:1938 作者:home_xu 栏目:移动开发

依赖项:

//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.<Long>autoDisposable(AndroidLifecycleScopeProvider.from(SecondActivity.this, Event.ON_DESTROY)))
                .subscribe(new Observer<Long>() {
                    @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://cache.yisu.com/upload/information/20200311/46/177482.jpg?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://cache.yisu.com/upload/information/20200311/46/177483.jpg?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'
```

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI