此文属于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的用法,发送事件首先得有一个Event Bean,在示例项目中在module_base中定义了一个LoginStateEvent,因为各子模块都依赖module_base模块,所以子模块都能够接收这个事件。
这样就可以在登录页面L

本文探讨Android模块化中的模块通信和模块间服务调用。介绍了使用EventBus进行事件发布/订阅的简单高效实现,以及通过ARouter框架实现面向接口的跨模块服务调用。详细讲解了EventBus的事件发送与接收,以及ARouter定义和调用服务的方法,提供实际案例加以说明。

被折叠的 条评论
为什么被折叠?



