问题描述
我有类似的项目结构
应用:
即时应用:
图书馆:
动态特征1:
动态特征2:
动态特征3:
现在动态特征1和动态特征2之间有一些依赖关系。现在,如果我将其添加为 dynamic-feature2 build.gradle 中的依赖项,则会导致循环依赖项。 以上只是一个例子,还有很多其他情况。如何正确处理这种依赖冲突或有什么建议?
解决方法
从主应用模块到动态功能模块的通信
您可以通过 Java 中的反射来做到这一点。确保您的类和方法名称未在动态模块中混淆。从模块中获取片段/活动或其他类:
Class class = Class.forName("your.dynamic.module.package.name.classname");
从你的类中获取一个方法:
Method method = class.getMethod("GenerateQuestion");
调用方法:
method.invoke(objectYouWantToInvokeTheMethodOn);
从动态特征模块到主模块的通信
要获取动态功能模块片段的父活动,您可以执行以下操作:
@Override
public void onAttach(Context context) {
super.onAttach(context);
activity = (Activity) context;
}
然后你可以在那个活动上调用一个方法。