1、AndroidManifest配置
<activity android:name=".MainActivity"/>
<!-- 設置一個默認的別名-->
<activity-alias
android:name=".DefaultAliasActivity"
android:enabled="true"
android:icon="@mipmap/app_one"
android:label="@string/app_name"
android:targetActivity=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
<!-- 需要換圖標和名稱別名-->
<activity-alias
android:name=".FestivalActivity"
android:enabled="false"
android:icon="@mipmap/app_two"
android:label="@string/app_name2"
android:targetActivity=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
首先給MainActivity創建兩個別名,一個為DefaultAliasActivity,另一個FestivalActivity。參數icon和label為app桌面圖標和名稱,targetActivity別名對象,enabled是否啟用,這里要注意,只能有一個為true。
2、主要java代碼切換
/**
* 設置默認默認圖標
*/
public void setDefaultAlias() {
PackageManager packageManager = getPackageManager();
ComponentName name1 = new ComponentName(this, "com.xiaoxing.hide.DefaultAliasActivity");
packageManager.setComponentEnabledSetting(name1, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
ComponentName name2 = new ComponentName(this, "com.xiaoxing.hide.AliasActivity");
packageManager.setComponentEnabledSetting(name2, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
}
/**
* 設置活動主題圖標
*/
public void setAlias() {
PackageManager packageManager = getPackageManager();
ComponentName name1 = new ComponentName(this, "com.xiaoxing.hide.DefaultAliasActivity");
packageManager.setComponentEnabledSetting(name1, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
ComponentName name2 = new ComponentName(this, "com.xiaoxing.hide.AliasActivity");
packageManager.setComponentEnabledSetting(name2, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
}