此文属于finddreams的原创博客,转载请注明出处:http://blog.csdn.net/finddreams/article/details/78349267
《我所理解的Android模块化(一)——概念和路由》
《我所理解的Android模块化(二)——模块通信和模块间服务调用》
《我所理解的Android模块化(三)——模块可插拔单独编译运行》
《我所理解的Android模块化(四)——常见问题和注意事项》
上一篇《我所理解的Android模块化(一)》笔者讲到了Android模块化的基本知识和模块化跳转路由的基本用法,解决了模块化中跳转的问题,下面就来讲讲如何实现模块化之间的通信和跨模块方法调用。
模块通信
有这样一个场景,就是APP中的登录成功事件,需要在多个模块中都要监听到,登录页面是在用户中心的模块中,而购物车这个模块也关心用户是否登录成功这个事件,如何让登录成功这个事件,让所有除用户中心的其他模块都能收到这个事件呢?
方法其实有两个:
1.广播的形式,属于Android系统原生就支持的;
2.EventBus,这个在Android界几乎无人不知吧,发布/订阅事件的神器;
因为广播BroadcastReceiver虽然是Android系统原生支持的,但使用起来略显繁琐,而EventBus 3.0又非常的简单好用,所以我们项目选择的这个库来做模块间的事件通信。
想要实现各模块都接受某一个事件,按照EventBus的用法,发送事件首先得有一个Eve