原文地址:https://juejin.im/post/5c36f2226fb9a049b7809170
要點(diǎn)內(nèi)容:
第一點(diǎn):設(shè)置原activity的enabled 為false
<!--原Activity enabled固定為false,且不通過(guò)代碼進(jìn)行設(shè)置 這個(gè)MainActivity設(shè)置enabled為false后就不能再通過(guò)顯式intent調(diào)用了炕横,會(huì)有報(bào)錯(cuò)信息挤聘。-->
<activity
android:enabled="false"
android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
第二點(diǎn):固定設(shè)置一個(gè)默認(rèn)的別名,用來(lái)替代原Activity
<activity-alias
android:name="DefaultAlias"
android:enabled="true"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher_round"
android:targetActivity=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
第三點(diǎn):設(shè)置自己想要的別名 和圖標(biāo)
<!--別名1,后面要加的話按這種樣式加就行了芝囤,沒(méi)有什么影響缰冤,只是注意要在代碼中進(jìn)行切換,不要直接在清單文件中切換扯饶。-->
<activity-alias
android:name="NewActivity1"
android:enabled="false"
android:label="Alias1"
android:icon="@mipmap/ic_launcher"
android:targetActivity=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
第四點(diǎn):在代碼中千萬(wàn)不要操作activity 類似這種
public void setActivityA() {
PackageManager packageManager = getPackageManager();
packageManager.setComponentEnabledSetting(new ComponentName(this, getPackageName() +
".NewActivity1"), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager
.DONT_KILL_APP);
packageManager.setComponentEnabledSetting(new ComponentName(this, getPackageName() +
".NewActivity2"), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager
.DONT_KILL_APP);
/*這里千萬(wàn)不要直接操作原來(lái)的activity 如果要回到原來(lái)的 可以操作自己設(shè)置的用來(lái)代替原activity的默認(rèn)值*/
// packageManager.setComponentEnabledSetting(new ComponentName(this, getPackageName() +
// ".MainActivity"), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager
// .DONT_KILL_APP);
}