Android 谷歌地图缓存问题
我在活动中使用谷歌地图。 当我在应用程序设置中更改语言(例如中文)时 直到我重新打开我的应用程序,地图的语言才改变Android 谷歌地图缓存问题,android,google-maps,Android,Google Maps,我在活动中使用谷歌地图。 当我在应用程序设置中更改语言(例如中文)时 直到我重新打开我的应用程序,地图的语言才改变 Locale locale = new Locale(languageToLoad); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(c
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
setContentView(R.layout.activity_maps);
我搜索了很多关于这个问题的信息,发现这是谷歌地图缓存问题,但没有找到任何解决方案。我可以考虑两个选项来解决这个问题:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (language_changed){//pseudo_code
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
setContentView(R.layout.activity_maps);
//now you need to do again all the findViewById call
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (language_changed){//pseudo_code
startActivity(CurrentActivity.this, CurrentActivity.class);
finish();
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (language_changed){//pseudo_code
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
setContentView(R.layout.activity_maps);
//now you need to do again all the findViewById call
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (language_changed){//pseudo_code
startActivity(CurrentActivity.this, CurrentActivity.class);
finish();
}
}
不要忘记将
android:configChanges=“locale”
添加到AndroidManifest.xml
中的活动标记中,让系统知道您想自己处理语言环境的更改。如果需要,请阅读更多内容您可以使用具有区域设置更改意图的BroadcastReceiver来检测设置更改,然后更新视图(地图视图或总体布局)。
您是否尝试过在OnConfiguration Changed Activity方法中处理此问题?我尝试过此方法,但不起作用…..即使在我重新打开Activity时它也不起作用…它只在应用程序重新打开时起作用。谢谢您的回答,但它不起作用。。。我已经试过了…即使我手动重新启动活动,它也不起作用。。。仅在应用程序重新启动的情况下有效。是否已在活动标记中添加configChanges属性?阅读我回答的最后两行,我可以肯定地说你在某处做错了什么。您无法处理地图区域设置的更改。祝您好运,更多地调试您的代码;)