博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安卓rxjava内存泄漏
阅读量:4982 次
发布时间:2019-06-12

本文共 1177 字,大约阅读时间需要 3 分钟。

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

private void createSingle() {        Single
> tvShowSingle = Single.fromCallable(new Callable
>() { @Override public List
call() throws Exception { List
list =new ArrayList
(); 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
>() { @Override public void onSuccess(@NonNull List
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的大小一直不变,没有释放

 

转载于:https://www.cnblogs.com/istar/p/7484267.html

你可能感兴趣的文章