使用RXJava的注意事项:

使用RXJava的注意事项:

-2018-07-23

1.切断数据流的传递:

1.1 收集所有的 Dispose对象;

mCompositeDisposable.add(s)

1.2 集中切断上下游的数据传递:

  this.mCompositeDisposable.dispose();

本质:是设置一个 dispose 变量,根据这个变量判断是否可以传递数据;

2.设置 ObservableOnSubscribe 为静态的内部类;

本质:使得内部类在实例化的过程中,不持有外部类的引用;

3.结束的时候,需要设置 Consumer 对象为null;

方法: 执行 onTerminateDetach()操作;

本质:把引用的内部类对象置为null;

例子:

Disposable disposable = Observable.create(new LoadAllFilesSubscribes())

                    .subscribeOn(Schedulers.io())//observable run on io thread

                    .observeOn(AndroidSchedulers.mainThread())//observe run on main thread

                    .onTerminateDetach()//当数据切断的时候,要执行此操作,防止内存泄露

    .map(new Function(){//因为这里再一次有了内部类的操作,要再一次用onTerminateDetach

..........

    })

    .onTerminateDetach()//当数据切断的时候,要执行此操作,防止内存泄露

                    .subscribe(new Consumer>() {

                        @Override

                        public void accept(List fileItems) throws Exception {

                            //更新UI

                            //updateView(fileItems);

                            mAdapter.getItems().addAll(fileItems);

                        }

                    });

        //收集Dispose

            addDisposable(disposable);

private static class LoadAllFilesSubscribes implements ObservableOnSubscribe>{

        @Override

        public void subscribe(ObservableEmitter e) throws Exception {

            //load all files

            List list = AllDocSeekUtil.getLocalDocSearchResult();

            e.onNext(list);

        }

    };

@Override

    protected void onDestroy() {

        super.onDestroy();

  //切断上下流的数据传输;

        removeDisposable();

    }

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 对于java中的思考的方向,1必须要看前端的页面,对于前端的页面基本的逻辑,如果能理解最好,不理解也要知道几点。 ...
    神尤鲁道夫阅读 959评论 0赞 0
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 3,474评论 0赞 3
  • 转载自:https://xiaobailong24.me/2017/03/18/Android-RxJava2.x...
    Young1657阅读 2,188评论 1赞 9
  • 儿子班上有个小朋友,家里很有钱,每次都会带好玩的东西去幼儿园,幼儿园一般不允许私带玩具,他很聪明,就把玩具换成贴纸...
    宁海的夏天阅读 1,052评论 1赞 2
  • 1 长沙的春天才迈出第一步,夏天就赶上了。 小米不喜欢长沙的天气,她想念家乡那四季分明的气候;她很爱吃,爱闹,当年...
    安康上阅读 421评论 0赞 2

友情链接更多精彩内容