(4.6.22.5)来吧,是时候撸一份自己的RxJava框架啦:强撸为eventbus

RxJava和EventBus的区别,无非就是EventBus的全局可达性

实现思路

  • 消费页面

    • 页面入口处,从全局变量中获取到 对应的 业务控制器,并 加入消费者
  • 生产页面

    • 调用处,构建一个业务控制器,构建自己的生产者,并将业务控制器存入全局变量

实践

private static HashMap<String,IPublisher> publishSaved = new HashMap<String,IPublisher>();  

   /****************************** A. 扩展成EventBus *************************************************/
    @Override
    public IPublisher<T> name(String t) {
        name = t;
        return this;
    }

    @Override
    public synchronized IPublisher<T> save() {
        if (name  == null)
            throw new RuntimeException("Publisher未命名");
        if (publishSaved.containsKey(name))
            throw new RuntimeException("Publisher重名");
        publishSaved.put(name,this);
        return this;
    }

    @Override
    public void destroy() {
        publishSaved.remove(name);
    }



    public static <T> IPublisher<T> getPublisher(String name){
        return (IPublisher<T>)publishSaved.get(name);
    }

Test

消费页面—监听页面

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    ...
        Publisher<T>.getPublisher("消费页面A")
            .bind(消费者);
    ...
}
    @Override
    protected void onDestroy() {
      Publisher<T>.getPublisher("消费页面A")
       .destroy();
        super.onDestroy();
    }

生产页面


    protected void xxx(Bundle savedInstanceState) {
    ...
        Publisher<T>.create(xxx)
            .post();
    ...
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值