如何让我的应用程序不受主题变化的影响?

How to make my app immune to theme change?

每当更改设备的主题时,都会发生两件事:

  1. 颜色改变
  2. activity重新启动

我不希望这些发生。 Stack Overflow 上已经发布的解决方案要么处理第一个问题,要么处理第二个问题。我已经通过删除夜间主题 xml 文件和 Theme.MaterialComponents.Light.DarkActionBar 而不是 DayNight 解决了第一个问题。但是我无法解决第二个问题。 Stack Overflow 上的解决方案是关于我们如何在不重新创建 activity 的情况下更改主题。但我想要的是没有发生。我的 activity 不应该对主题变化做出反应。有什么办法吗?

在您的 Activity 声明的应用程序 AndroidManifest.xml 中。您可以设置 android:configChanges="uiMode"

例如:

    <activity
            android:name=".MainActivity"
            android:configChanges="uiMode"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>