Der Standard Locale
wird statisch zur Laufzeit für Ihren Anwendungsprozess aus den Einstellungen der Systemeigenschaften konstruiert, so dass es die Locale
auf diesem Gerät ausgewählt wann die Anwendung gestartet wurde . Normalerweise ist dies in Ordnung, aber es bedeutet, dass der Benutzer seine Locale
in den Einstellungen, nachdem Ihr Anwendungsprozess ausgeführt wurde, wird der Wert von getDefaultLocale()
wird wahrscheinlich nicht sofort aktualisiert werden.
Wenn Sie aus irgendeinem Grund in Ihrer Anwendung solche Ereignisse abfangen müssen, können Sie stattdessen versuchen, die Locale
verfügbar über die Ressource Configuration
Objekt, d.h.
Locale current = getResources().getConfiguration().locale;
Sie können feststellen, dass dieser Wert nach einer Einstellungsänderung schneller aktualisiert wird, wenn dies für Ihre Anwendung erforderlich ist.
Update für > API 24 aus den Kommentaren
Locale current = getResources().getConfiguration().getLocales().get(0) // is now the preferred accessor.