Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

206
Visualizações
El sistema de seguimiento del modo oscuro de Android devuelve el modo incorrecto a menos que elimine la aplicación

Estoy implementando un cambio de modo oscuro dinámico en la aplicación en la que estoy trabajando y funciona muy bien para MODE_NIGHT_YES y para MODE_NIGHT_NO pero cuando configuro esto en MODE_NIGHT_FOLLOW_SYSTEM , aplica el tema pero no con el modo correcto seleccionado por el usuario en la configuración del teléfono.

Estoy configurando el tema llamando

 fun updateThemeSelection(mode: Int) { selectedMode = mode // Saving to shared preference to remember user choice setDefaultNightMode(mode) }

La forma en que verificamos si el sistema está configurado en modo oscuro o no es con esta función (también probé otras configuraciones)

 fun Configuration.isSystemInDarkMode(): Boolean { val defaultNightMode = AppCompatDelegate.getDefaultNightMode() if (defaultNightMode == AppCompatDelegate.MODE_NIGHT_YES) return true if (defaultNightMode == AppCompatDelegate.MODE_NIGHT_NO) return false return (uiMode and Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES }

Esto funciona bien, excepto por MODE_NIGHT_FOLLOW_SYSTEM que solo funciona después de forzar el cierre de la aplicación; en todos los demás casos, devuelve el último modo conocido.

Lo extraño es que si configuro android:configChanges="uiMode" en la actividad en el manifiesto fun onConfigurationChanged(newConfig: Configuration) se activa cuando alterno la configuración rápida del modo oscuro pero cuando isSystemInDarkMode() en la config que recibo el último modo conocido hasta que se elimina la aplicación...

Incluso depuré los bits de uiMode y Configuration.UI_MODE_NIGHT_MASK y devuelven los últimos valores.

También intenté usar setLocalNightMode(int) y applyDayNight() y recibí el mismo resultado.

No creo que sea un error específico del dispositivo porque lo ejecuto tanto en un emulador como en un OnePlus 7 pro, ambos con Android 11.

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda