根据产品口味为Intent使用不同的类

时间:2019-07-02 13:52:52

标签: android android-activity android-productflavors

我们目前正在与flavors合作,使用相同的代码库创建不同的应用程序。我遇到了这种情况:

我有两个应用,应用A 应用B 。在src/main内,因此在两种口味的范围内,我都有一个名为Start_Activity的活动。我想从Start_Activity转到A_ActivityB_Activity,这取决于我们所在的应用程序。A_ActivityB_Activity仅在范围内各自的口味。

尝试此操作的最佳方法是什么?我不想将Start_Activity移到单独的样式中,因为那样会破坏重用代码的点。

我可以从资源文件或清单中解析Intent的活动类吗?还是只能使用每种口味中存在的具有相同名称常量的类创建类?

修改

我忽略了提及,我特别不想使用这样一种方法,即活动具有相同的名称,并且仅存在于它们各自的风格范围内(例如,重命名A_Activity和{{1 }}到B_Activity)。

我不想使用它,因为我可能遇到 App C 也想要使用X_Activity的情况。使用此方法,我必须同时具有 App A App C 两种风格的A_Activity文件,对于我想要的文件来说,文件还不够干净要做。

2 个答案:

答案 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(..)创建开始意图,该意图可以从配置文件或字符串资源中加载