动态更改为 dark/light 模式时闪烁

Flash when changing to dark/light mode dynamically

我有一个需求,当一个开关被点击时,我需要分别将模式从暗反转为亮,反之亦然。但扭曲的部分是,我不想完成 activity 并重新启动它,因为我不想让 activity 娱乐的 flash/flicker 被用户注意到。因此,我使用 Activity.this.recreate()。现在,这在我目前检查过的所有 API 关卡和手机中都运行良好。但是,在Android Pie中,即使使用Activity.this.recreate()

,它也显示出一种闪光

任何人请建议我一些方法来解决 Android Pie 中的问题,或者一些更好的方法来解决我的问题。

是的,你是对的,当我们使用"recreate()"方法重新启动activity时,它在AndroidPie(9.0)中闪烁。为了解决这个问题,我们可以按照下面的方法来做,我已经用 Android Pie (9.0) 测试成功并且移除了 flash。

使用 "overridePendingTransition(0,0)" 并在不使用 "recreate()" 方法的情况下启动自身 activity。

代码如下:

var intent = Intent(this@MainActivity, MainActivity::class.java)
startActivity(intent)
overridePendingTransition(0,0)