我们目前正在与flavors合作,使用相同的代码库创建不同的应用程序。我遇到了这种情况:
我有两个应用,应用A 和应用B 。在src/main
内,因此在两种口味的范围内,我都有一个名为Start_Activity
的活动。我想从Start_Activity
转到A_Activity
或B_Activity
,这取决于我们所在的应用程序。A_Activity
和B_Activity
仅在范围内各自的口味。
尝试此操作的最佳方法是什么?我不想将Start_Activity
移到单独的样式中,因为那样会破坏重用代码的点。
我可以从资源文件或清单中解析Intent
的活动类吗?还是只能使用每种口味中存在的具有相同名称常量的类创建类?
修改
我忽略了提及,我特别不想使用这样一种方法,即活动具有相同的名称,并且仅存在于它们各自的风格范围内(例如,重命名A_Activity
和{{1 }}到B_Activity
)。
我不想使用它,因为我可能遇到 App C 也想要使用X_Activity
的情况。使用此方法,我必须同时具有 App A 和 App C 两种风格的A_Activity
文件,对于我想要的文件来说,文件还不够干净要做。
答案 0 :(得分:1)
看这里: https://stackoverflow.com/a/16746755/7325737
“如果要在两种口味中使用同一类的不同版本,则需要在两种口味中创建它。
src/flavor1/java/com/foo/A.java
src/flavor2/java/com/foo/A.java
然后您在src / main / java中的代码就可以完成
import com.foo.A
根据所选的口味,使用正确版本的com.foo.A。”
我认为这应该对您有帮助!
答案 1 :(得分:1)
在Start_Activity
中,您可以通过Intent.parseUri(..)创建开始意图,该意图可以从配置文件或字符串资源中加载