Android Otto 的使用

Otto是square(这是一个很牛逼的开源公司,以后还将介绍其他的开源项目)公司出的一个事件库,可在应用程序内(非跨进程的)所有类之间进行通信。使用这种方式,可以使代码量减少,可读性增加,降低耦合,接下来就讲一下如何使用。

获取Bus对象

建议使用单例模式,获取

Bus bus = new Bus();


发布事件

bus.post(new CustomEvent()),CustomEvent是自定义的一个类,当然可以写成有参数的构造方法来传递数据。

还有一种利用


订阅事件

接收事件通知,只需要在方法上加上@Subscribe注解

@Subscribe 

public void receivedEvent(CustomEvent event)

这里的event要和上面post的一样,函数名随意。


注册

发布和订阅都完成了,最后还有重要的一步,就是注册,无论是发布事件的类还是订阅事件的类都需要注册和注销

bus.register(this);

bus.unregister(this);


生产

@Produce 

public AnswerAvailableEvent produceAnswer() { 

// Assuming 'lastAnswer' exists. 

return new AnswerAvailableEvent(this.lastAnswer); }

使用Produce 注解之后,订阅者在注册之后,bus将会获取当前已知的值lastAnswer,发送给订阅者


好了,这样就可以了,要注意注册和注销的使用的位置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值