OTTO
2015-06-08 10:21:44 2 举报
AI智能生成
个人笔记
作者其他创作
大纲/内容
使用
1.订阅者
Bus.register(this);
Bus.unregister(this);
关注:
@Subscribe
public void getMessage(@NonNull SomeEvent s)
2.发布者
Bus.post(SomeEvent);
概述
基于Observer设计模式。有发布者,订阅者这两个主要对象
优点
极大的提高了程序的耦合度,更加利于MVP分工开发与维护
缺点
额外的代码量与额外的学习时间
替代方案
Interface
耦合度差
EventBus
Handler/Intent等自带API
使用场景
Fragment,Service或者Activity组件之间的通信
MVP(Model View Presidenter)架构中,Model与Presidenter的回掉通信。包括但不限于REST, DB, SP, Broadcast, ContentObserver
示例(接受短信服务)
1.Applocation创建单例
public static final Bus bus = new Bus(ThreadEnforcer.MAIN);
2.注册发送事件监听
3.在service中注册(解除)广播接受者
GlobalContext.getBusInstance().register(mReceiver);//注册Bus
registerReceiver(mReceiver, iFilter); // 注册广播
4.广播接收处理时发送event
GlobalContext.getBusInstance().post(msg);
5.再要处理的页面绑定和处理
bus.register(this);
@Subscribe public void getMessage(SmsMessage s) {}
0 条评论
下一页