android Model与View解耦的一个简单方式

Model与View大家都了解,这里重点介绍的是EventBus。

EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。

onCreate   里面注册EventBus  :  EventBus.getDefault().register(this);

onDestroy 里面反注册EventBus  :  EventBus.getDefault().unregister(this);

注册写好之后就要在Activity或者你的Fragment里面写一个方法  onEvent(Event event)    // 名字必须是onEvent,event是自己定义的存放数据的实体类,在这个方法里面处理数据

异步网络请求返回的数据解析完成之后放入event实体类里面,调用 EventBus.getDefault().post(event);  即会执行你已注册的 onEvent 方法。

一个Activity如果有多个网络请求不同数据的处理,仍然是写onEvent方法  只不过是event实体类不一样,EventBus会自动区分。  比如 onEvent(MyEvent event); onEvent(OtherEvent event)

 

原文地址:https://www.cnblogs.com/yulook/p/5328312.html