我制作了三个应用程序,我现在想要在一个apk文件中发布(一个安装)。在启动“包装器应用程序”时,用户应决定运行哪个应用程序。
到目前为止,非常好,但问题是,每个应用程序都使用应用程序文件中的全局常量。有没有办法将三个应用程序合二为一,每个应用程序都使用自己的应用程序文件?
谢谢!
为避免混淆,我添加了一个简短的例子:
应用1:
public class AApplication extends Application {
public static String CONSTANT_1 = "aaa";
}
App 2:
public class BApplication extends Application {
public static String CONSTANT_1 = "bbb";
}
应用3:
public class CApplication extends Application {
public static String CONSTANT_1 = "ccc";
}
答案 0 :(得分:2)
好的,既然我的想法显然无法实现,我提出了以下解决方法:
我在新项目中创建了一个Apllication类
public class NewApplication extends OldSuperApplication {}
我添加了一个方法
public static void setApplication(RGCApplication a) {
CONSTANT_1 = a.CONSTANT_1;
...
}
选择所需的"子应用程序"在这种情况下的应用程序" A"我打电话给
NewApplication.setApplication(new AApplication());
或
NewApplication.setApplication(new BApplication());
我不确定这是否是有臭味的编码,但它确实有效!
答案 1 :(得分:1)
您可能想要启动三项活动。在清单中添加如下内容:
<activity
android:name=".Activityone"
android:label="First Activity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Activitysecond"
android:label="Second Activity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Activitythree"
android:label="Third Activity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
通过这种方式,用户可以点击三个图标(活动)。
答案 2 :(得分:0)
你无法集成3个不同的apk及其各自的代码库来运行单个apk,或者在单个应用程序中集成所有3个代码库,并根据用户的选择将所有3个分成不同的模块运行。