O padrão Localeé construído estaticamente em tempo de execução para o processo do aplicativo a partir das configurações de propriedade do sistema, portanto, ele representará o Localeselecionado nesse dispositivo quando o aplicativo foi iniciado . Normalmente, isso é bom, mas significa que, se o usuário alterar suas Localeconfigurações após a execução do processo do aplicativo, o valor de getDefaultLocale()provavelmente não será atualizado imediatamente.
Se você precisar interceptar eventos como esse por algum motivo em seu aplicativo, tente obter o Localedisponível no Configurationobjeto de recurso , por exemplo
Locale current = getResources().getConfiguration().locale;
Você pode achar que esse valor é atualizado mais rapidamente após uma alteração nas configurações, se necessário para o seu aplicativo.
default()é uma aposta bastante segura, mas não a utilize para processamento (como dizem os documentos).