对RxJava的学习之PublishSubject

PublishSubject:

    与普通的Subject不同,在订阅时并不立即触发订阅事件,而是允许我们在任意时刻手动调用onNext,onError(),onCompleted来触发事件。

例1:当一个界面发生改变,通知另一个界面做出响应,以下是两个Fragment之间通讯的Demo

在Activity中:定义好公共的PublishSubject对象

PublishSubject publishSubject = PublishSubject.create();

TopFragment topFragment =new TopFragment(publishSubject);

BottomFragment bottom_Fragment =new BottomFragment(publishSubject);

getActivity().getSupportFragmentManager().beginTransaction()

.replace(R.id.fl_top,topFragment, "top")

.replace(R.id.fl_bottom, bottom_Fragment, "bottom").commit();

TopFragment :

@OnClick(R.id.btn_send)

void sendToBottom(){

String result =et_input.getText().toString().trim();

        publishSubject.onNext(result);

}

BottomFragment :

publishSubject.subscribe(new Action1() {

@Override

        public void call(String s) {

            tv_result.setText(s);

}

});

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,130评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,292评论 19 139
  • 前言RxJava和Retrofit也火了一段时间了,不过最近一直在学习ReactNative和Node相关的姿势,...
    AFinalStone阅读 3,535评论 0 0
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,698评论 0 17
  • CocoaPods CocoaPods是一个用来帮助我们管理第三方依赖库的工具。它可以解决库与库之间的依赖关系,下...
    陈炯阅读 4,276评论 0 1