La valeur par défaut Locale
est construit statiquement au moment de l'exécution pour votre processus d'application à partir des paramètres de propriété du système, il représentera donc l'élément Locale
sélectionné sur cet appareil quand l'application a été lancée . En règle générale, c'est très bien, mais cela signifie que si l'utilisateur modifie son adresse de courrier électronique, il n'y a pas de problème. Locale
dans les paramètres après l'exécution de votre processus d'application, la valeur de l'option getDefaultLocale()
ne sera probablement pas mis à jour immédiatement.
Si, pour une raison quelconque, vous avez besoin de piéger des événements de ce type dans votre application, vous pourriez plutôt essayer d'obtenir l'adresse de l'utilisateur. Locale
disponible auprès de la ressource Configuration
objet, c'est-à-dire
Locale current = getResources().getConfiguration().locale;
Vous pouvez constater que cette valeur est mise à jour plus rapidement après un changement de paramètres si cela est nécessaire pour votre application.
1 votes
default()
est une valeur sûre, mais ne l'utilisez pas pour le traitement (comme le dit la documentation).1 votes
@A--C l'utiliser pour le traitement ?
0 votes
Ouais, voir ce que le docs dites : Certaines régions utilisent ',' comme point décimal et '.' pour le regroupement des chiffres. donc des trucs comme parseInt() peuvent échouer. Notez qu'ils recommandent toujours d'utiliser
default()
mais pas pour les choses qui peuvent casser le code.