3

我制作了三个应用程序,现在我想将它们放在一个 apk 文件中(一次安装)。在启动“包装应用程序”时,用户应决定运行哪个应用程序。

到目前为止,一切都很好,但问题是,每个应用程序都使用应用程序文件中的全局常量。有没有办法将三个应用程序合二为一,每个应用程序都使用自己的应用程序文件?

谢谢!

为避免混淆,我添加了一个简短的示例:

应用 1:

public class AApplication extends Application {
    public static String CONSTANT_1 = "aaa";
}

应用 2:

public class BApplication extends Application {
public static String CONSTANT_1 = "bbb";
}

应用程序 3:

public class CApplication extends Application {
    public static String CONSTANT_1 = "ccc";
}
4

3 回答 3

2

好的,由于我的想法显然无法实现,我想出了以下解决方法:

  1. 我在新项目中创建了一个应用类

    public class NewApplication extends OldSuperApplication {}
    
  2. 我添加了一个方法

    public static void setApplication(RGCApplication a) {
        CONSTANT_1 = a.CONSTANT_1;
        ...
    } 
    
  3. 在这种情况下应用程序“A”在开始屏幕上选择所需的“子应用程序”后,我调用

    NewApplication.setApplication(new AApplication());
    

    或者

    NewApplication.setApplication(new BApplication());
    

我不确定这是否是臭代码,但它有效!

于 2012-08-27T15:54:16.787 回答
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>

通过这种方式,用户可以点击三个图标(活动)。

于 2012-08-27T08:02:17.750 回答
0

您不能集成 3 个不同的 apk 及其各自的代码库以通过单个 apk 运行,或者将所有 3 个代码库集成到单个应用程序中,并将所有 3 个作为不同的模块划分为不同的模块来运行,具体取决于用户的选择。

于 2012-08-27T08:14:41.077 回答