android Model与View解耦的一个简单方式(不需要写接口)
Posted yuLook
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android Model与View解耦的一个简单方式(不需要写接口)相关的知识,希望对你有一定的参考价值。
我给我这种模式起名MVE (Model,View,EventBus)。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)
以上是关于android Model与View解耦的一个简单方式(不需要写接口)的主要内容,如果未能解决你的问题,请参考以下文章