【发布时间】:2017-03-22 01:56:01
【问题描述】:
我们在 Android N 7.1 (API-25) 中遇到了一个奇怪的行为,即在启动 WebView 后,系统强制将区域设置重置为设备区域设置。这会覆盖应用程序上使用的语言环境(用于本地化)。重现这一点的简单方法是在应用程序上进行本地化。并启动一个 WebView。然后,在您再次重新启动应用程序之前,您将不会再看到本地化内容。这只发生在 Android-7.1 (API-25) 上
以下是我如何切换适用于所有 API 的语言环境:
public void switchToCzLocale() {
Locale mLocale = new Locale("cs","CZ");// it can be any other Locale
Configuration config = getBaseContext().getResources()
.getConfiguration();
Locale.setDefault(mLocale);
config.setLocale(mLocale);
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
我已经上传了一个示例来重现该问题,并提供了更多详细信息:
https://github.com/mabuthraa/WebView-android7-issue
请知道这种行为是否是错误或可能是更改语言环境的错误植入。
Android群开票链接:Issue 218310: [developer preview] Creating a WebView resets Locale to user defaults
【问题讨论】:
标签: android webview android-7.1-nougat