码迷,mamicode.com
首页 > 移动开发 > 详细

安卓rxjava内存泄漏

时间:2017-09-06 14:30:51      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:owa   提前   bin   blog   string   进程   估计   pos   ttext   

使用RxActivity的内存效果图,rxlifecycle2还是用作用的,可以看到使用的内存变小多了

技术分享

private void createSingle() {
        Single<List<String>> tvShowSingle = Single.fromCallable(new Callable<List<String>>() {
            @Override
            public List<String> call() throws Exception {

                List<String> list =new ArrayList<String>();
                int i = 0;
                while (i < 800000) {
                    list.add(String.valueOf(i));
                    Log.d(TAG, String.valueOf(i));
                    i++;
                }
                return list;
            }
        });
        tvShowSingle
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .compose(this.bindToLifecycle())
                .subscribe(new DisposableSingleObserver<List<String>>() {
                    @Override
                    public void onSuccess(@NonNull List<String> strings) {
                            Log.d(TAG,"a35");
                        mTextView.setText(strings.size()+"");
                    }

                    @Override
                    public void onError(@NonNull Throwable e) {

                    }
                });
    }

创建一个比较耗内存测操作函数,如果使用正常的Activity的话,估计要64M的大小,提前把activiy finish掉,那么执行完后就会访问view的内容,此时view的内容为空

在oncreate的地方调用一个函数

createSingle();
finish();调用这个函数后会自动关闭activity界面,程序的界面退出后,但是后台的进程仍然没有关闭,仍然在运行,就是不停的打印日志出来。

程序的进程没有关闭掉,仍然在后台在运行着,一直占着内存资源,没有释放,没有使用.compose(this.bindToLifecycle()),内存一直维持在64M的大小一直不变,没有释放

技术分享

 

安卓rxjava内存泄漏

标签:owa   提前   bin   blog   string   进程   估计   pos   ttext   

原文地址:http://www.cnblogs.com/istar/p/7484267.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!