我正在经历以下情况:应用程序A在后台,然后我从相关图标启动应用程序B,但A重新打开。
这两种口味共享大部分相同的代码。
问题是,A和B都打开了同一个MainActivity文件。 MainActivity位于main
包中,而不是在flavors包中。 我想让每种口味都为自己打开一个新的任务。
这是当前的XML文件:
A:
<activity
android:name="com.example.activities.MainActivity"
android:label="@string/app_name"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
B:
<activity
android:name="com.example.activities.MainActivity"
android:label="@string/app_name"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
和build.grade:
defaultConfig {
applicationId "com.example"
...
}
flavorDimensions "example"
productFlavors {
a{
dimension "example"
applicationIdSuffix ".a"
versionCode ...
versionName ...
//flavor consts
...
}
b{
dimension "example"
applicationIdSuffix ".b"
versionCode ...
versionName ...
//flavor consts
...
}
}
我试图将launchMode转换为一个标准,但它没有任何好处。
谢了。
我还有一个领域没有提到:
android:taskAffinity="..."
两种口味都使用了相同的task Affinity应用程序类,所以我把它切成了两个分离的应用程序类。