万事须己运,他得非我贤。这篇文章主要讲述安卓rxjava内存泄漏相关的知识,希望能为你提供帮助。
使用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内存泄漏】
推荐阅读
- Android 7.1 SystemUI--任务管理
- Oracle NoLogging Append 方式减少批量insert的redo_size
- 安卓盒子点歌系统代码
- android videoView 加载等待
- win7专业版产品密钥,本文教您激活win7专业版产品密钥
- win7激活工具64位,本文教您激活工具如何激活win764位
- 笔记本win7系统,本文教您笔记本怎样win7系统
- 笔记本屏幕暗,本文教您怎样处理
- 如何看电脑设置,本文教您怎样看