上一篇我们介绍了ContentProvider应用组件间通信,相信了解过组件化开发的同学肯定也知道阿里的Arouter框架,它是为组件间通信而生的。
今天我们不说它如何实现Activity、Fragment跨组件跳转的,来说说它用于Service获取的应用,其中主要依靠ARouter中的Iprovider来实现的。
如何实现?
同样的,Module A、B都引用了lib_common组件,A想要访问B中的Service
1.在引入了ARouter的前提下,我们在lib_common中定义一个数据传递的接口:
public interface RouteService extends IProvider {
<T> void set(T ...t);
}
2.在B中定义RouteService的实现类:
/**
* Created by huolala-sunyan on 2018/8/3.
*/
@Route(path = "/main/dialogrouteservice")//路由路径,通过它来找到对应的组件
public class DialogRouteService implements RouteService {
@Override
public void init(Context context) {
}
@Override
public <T> void set(T[] t) {
String msg = (String) t[0];
Intent in