首先在AndroidManifest中預定義好<activity-alias/>, 設(shè)置好icon北救,enabble設(shè)為false不啟用,并指向原有的SplashActivity
<activity android:name=".SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!--Activity別名诅妹, 此處定義節(jié)假日的圖標罚勾,需要事先內(nèi)置于APP中-->
<activity-alias
android:name=".SplashAliasActivity"
android:enabled="false"
android:icon="@mipmap/ic_launcher_2"
android:targetActivity=".SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
當APP在后臺運行時,替換圖標(將enable設(shè)為true)吭狡,同時將原組件禁用尖殃,可以采用workmanager設(shè)定自動任務(wù)
// 省略定時任務(wù)的代碼(參考workmanager),設(shè)定定時切換圖標
context.packageManager.setComponentEnabledSetting(
ComponentName(context, SplashAliasActivity::Class.java),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP
)