Mặc định Locale
được xây dựng tĩnh trong thời gian chạy cho quy trình ứng dụng của bạn từ cài đặt thuộc tính hệ thống, do đó, nó sẽ đại diện cho Locale
lựa chọn trên thiết bị đó khi ứng dụng được khởi chạy . Thông thường, điều này là tốt, nhưng điều đó có nghĩa là nếu người dùng thay đổi Locale
cài đặt của họ sau khi quá trình ứng dụng của bạn đang chạy, giá trị getDefaultLocale()
có thể sẽ không được cập nhật ngay lập tức.
Nếu bạn cần bẫy các sự kiện như thế này vì một số lý do trong ứng dụng của mình, thay vào đó, bạn có thể thử lấy dữ liệu Locale
có sẵn từ Configuration
đối tượng tài nguyên , nghĩa là
Locale current = getResources().getConfiguration().locale;
Bạn có thể thấy rằng giá trị này được cập nhật nhanh hơn sau khi thay đổi cài đặt nếu điều đó là cần thiết cho ứng dụng của bạn.
default()
là một đặt cược khá an toàn, chỉ cần không sử dụng nó để xử lý (như các tài liệu nói).