Есть ли какой-нибудь способ для меня как разработчика, чтобы запретить настройку Phone Nightmode принудительно закрывать мое приложение? - PullRequest
0 голосов
/ 24 сентября 2019

Извините, что не могу быть более конкретным с этой темой.Я ищу возможные варианты решения проблемы и, если есть известное решение для разработчиков: многие широко используемые устройства, такие как Samsung Galaxy S8 / S9 / S10, имеют настройку ночного режима / темную тему.Я заметил, что переключение этого параметра принудительно закрывает многие процессы игрового приложения без какой-либо причины, в то время как другие настройки времени игры не затрагиваются этим параметром.Могу ли я контролировать это как разработчик?Приложения Google Play от Nitrome, «Redungeon», «Tower Fortress» будут принудительно закрываться при включении или выключении ночного режима, но на все приложения, которые я тестировал, например, с движком Unity, это не влияет.

1 Ответ

1 голос
/ 24 сентября 2019

Я предполагаю, что это происходит потому, что переключение в темный режим вызывает изменение конфигурации.Изменение конфигурации приведет к воссозданию активности, если вы явно не укажете ОС, что вы будете обрабатывать это изменение самостоятельно, как описано здесь .

Когда меняется тема приложения (либо через настройки системы, либо через AppCompat) это вызывает изменение конфигурации uiMode.Это означает, что Действия будут автоматически воссозданы.

Как разработчику, вам нужно добавить android:configChanges="uiMode" в вашем манифесте к активности вашей игры, чтобы предотвратить принудительное восстановление, когда ОС меняет тему.

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

Я не разработчик Unity, но я предполагаю, что Unity игнорирует все изменения конфигурации по умолчанию.

...