Значение по умолчанию Locale
создается статически во время выполнения процесса приложения из параметров системных свойств, поэтому оно будет отображать Locale
выбранное на этом устройстве при запуске приложения . Как правило, это нормально, но это означает, что если пользователь изменит свои Locale
настройки после запуска процесса приложения, значение, getDefaultLocale()
вероятно, не будет немедленно обновлено.
Если по какой-то причине вам нужно перехватывать подобные события в вашем приложении, вы можете вместо этого попытаться получить Locale
доступное из Configuration
объекта ресурса , т.е.
Locale current = getResources().getConfiguration().locale;
Вы можете обнаружить, что это значение обновляется быстрее после изменения настроек, если это необходимо для вашего приложения.
default()
довольно безопасная ставка, просто не используйте ее для обработки (как говорят в документации).