如何让我的 android activity 继续运行,即使有人从黑暗模式切换到白天模式,反之亦然(使用 Java)

How do I keep my android activity keep on going even if somebody switches from dark mode to day mode or vice versa (using Java)

问题是,当我从暗模式切换到亮模式(android 暗模式和 android 亮模式)时,正在进行的 activity 工作正常但是重复的 activity 重新开始。

现在,当您只处理视觉效果时,这并不重要,因为新的 activity 覆盖了屏幕,旧的 activity 不显示,但我也在处理声音,所以声音在两个活动都听到了。

简而言之,当从暗模式切换到亮模式(反之亦然)时,正在进行的 activity 会继续,而同一模式的副本 activity 从头开始​​。我不想要这个新的副本 activity。我该如何避免?

我认为这里不需要我的代码。我需要 Java.

中的答案

你的问题描述没有多大意义。通常,如果您更改 light/dark 模式设置,Android 将杀死 Activity 的现有实例并创建一个新实例,以便新实例可以重新创建所有 UI 具有适当样式的元素。你说 Android 并没有杀死现有的实例,但它正在启动一个新的实例,这是没有意义的。您应该在 onCreate()onDestroy() 中添加日志记录,看看这是否真的发生了,或者您是否看到了其他东西。

请注意,您可以通过添加

来阻止 Android 重新启动您的 Activity
android:configChanges="uiMode"

到清单中的 <activity> 声明。

Android 框架不会终止并重新创建您的 Activity,而是会在 Activity 的现有实例上调用 onConfigurationChanged()。然后您需要自己处理更改。