首页 > 解决方案 > 作为开发人员,我有什么办法可以防止电话夜间模式设置强行关闭我的应用程序?

问题描述

抱歉,我不能更具体地讨论这个话题。我正在寻找问题的可能线索以及开发人员是否有已知的解决方案:许多常用设备,如三星 Galaxy S8/S9/S10,都有夜间模式设置/深色主题设置。我注意到切换此设置会无缘无故地强制关闭许多游戏应用程序进程,而其他游戏运行时不受该设置的影响。作为开发人员,我对此有任何控制权吗?Nitrome 的 Google Play 应用程序、“Redungeon”、“Tower Fortress”将在开启或关闭夜间模式时强制关闭,但我测试的所有使用 Unity 引擎运行的应用程序都不会受到影响。

标签: androidpropertiesruntime

解决方案


我认为发生这种情况是因为切换到暗模式会触发配置更改。除非您明确告诉操作系统,您将自己处理更改,否则配置更改将导致重新创建活动,如此处所述

当应用程序的主题更改(通过系统设置或 AppCompat)时,它会触发 uiMode 配置更改。这意味着将自动重新创建活动。

作为开发人员,您需要将android:configChanges="uiMode"清单添加到游戏的活动中,以防止在操作系统更改主题时强制重新启动。

<activity
    android:name=".MyActivity"
    android:configChanges="uiMode" />

我不是 Unity 开发人员,但我认为 unity 默认会忽略所有配置更改。


推荐阅读