Android暗模式行为

时间:2019-10-02 09:58:14

标签: android themes android-darkmode

我正在尝试在应用程序中实现暗模式,并且遇到 MODE_NIGHT_YES | MODE_NIGHT_NO 标志的奇怪行为。

我使用 AppCompatDelegate.setDefaultNightMode(...)设置全局暗模式。因此,当我使用 MODE_NIGHT_FOLLOW_SYSTEM 时,一切都很完美,并且可以按预期工作,但是当我使用 MODE_NIGHT_YES MODE_NIGHT_NO 时,我的应用程序仍会在系统暗模式切换设置上做出反应并在发生时重新创建我的活动。我希望,如果我设置 MODE_NIGHT_YES NO ,系统设置无论如何都不会影响我的应用程序,但是会影响到我的应用程序。

这是预期的还是一个错误?另外,我自己也不处理uiMode配置更改,所有操作都通过使用 AppCompatDelegate.setDefaultNightMode(...)完成。但是看来我应该这样做,以防止不必要的活动重新娱乐。

1 个答案:

答案 0 :(得分:0)

不过,这种行为是正确的。每次您执行以下操作之一:

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)

您的活动必须重新创建才能应用。

另一方面,如果您使用:AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM) 您的活动将使用“系统”主题模式首选项(如果BuildCompat.isAtLeastQ())进行初始化