Мое приложение исчезает в последних приложениях после динамического изменения значка приложения с Android 9.0
Я использую псевдоним активности для динамического изменения значка моего приложения, в результате чего мое приложение исчезает из последних приложений.
Манифест
<activity-alias
android:enabled="false"
android:icon="@mipmap/ic_launcher_11"
android:label="@string/app_name"
android:name=".ui.launcher_d_eleven"
android:targetActivity=".ui.SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity-alias>
private void enableComponent(PackageManager pm, String launcher) {
ComponentName newComponent = new ComponentName(this, launcher);
pm.setComponentEnabledSetting(newComponent,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
}
private void disableComponent(PackageManager pm, String launcherAlias) {
LoggerUtil.e("zkx disable Launcher = " + launcherAlias);
ComponentName deComponent = new ComponentName(this, launcherAlias);
pm.setComponentEnabledSetting(deComponent,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
}
1 ответ
Немного поздно, но у меня есть решение для этого, вам нужно добавить псевдоним по умолчанию, указывающий на MainActivity, не меняя значок, и удалить свойство Launcher в манифесте фильтра намерений Main Activity. Итак, ваша MainActivity будет выглядеть так
<activity
android:name=".MainActivity"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
И добавьте псевдоним по умолчанию, который выглядит так
<activity-alias
android:name=".Default"
targetActivity = ".MainActivity"
enabled = true>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
И затем, когда вы не включаете/отключаете свою MainActivity, вы отключаете псевдоним и заменяете его другим псевдонимом. Это сработало для меня.