我的应用程序在以编程方式更改应用程序图标后被杀死 android

问题描述 投票:0回答:0

我试图以编程方式更改应用程序图标,但每次图标更改时我的应用程序都会终止,我想要实现的是当我更改应用程序图标时应用程序不会终止,我的代码有问题。

我的 Android 清单

<activity
        android:name=".MainActivity"
        android:exported="true">
        <intent-filter>
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity-alias
        android:name=".MainActivity.White"
        android:exported="true"
        android:icon="@mipmap/ic_launcher_white"
        android:targetActivity=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity-alias>
    <activity-alias
        android:name=".MainActivity.Dark"
        android:exported="true"
        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>
</application>

我的主要活动

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    val darkIconComponentName = ComponentName(this, "com.example.example.MainActivity.Dark")
    val whiteIconComponentName = ComponentName(this, "com.example.example.MainActivity.White")

    findViewById<Button>(R.id.dark_id).setOnClickListener {
        packageManager.setComponentEnabledSetting(whiteIconComponentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP)
        packageManager.setComponentEnabledSetting(darkIconComponentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP)

    }
    findViewById<Button>(R.id.white_id).setOnClickListener {
        packageManager.setComponentEnabledSetting(darkIconComponentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP)
        packageManager.setComponentEnabledSetting(whiteIconComponentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP)

    }
}
android kotlin icons android-launcher
© www.soinside.com 2019 - 2024. All rights reserved.