我的Activity onConfigurationChanged根本没有被调用。我已将SDK API更新为Marshmallow;
在我的代码中覆盖“onConfigurationChanged”:
@Override
public void onConfigurationChanged(Configuration newConfig) {
Log.d(HomeActivity.class.getSimpleName() , "called"); // not called
super.onConfigurationChanged(newConfig);
Log.d(HomeActivity.class.getSimpleName(), "called"); // not called
在我的Android Manifest中,我声明:
<activity
android:name=".activities.HomeActivity"
android:configChanges="layoutDirection|locale"
我要求改变语言:
public void changeLocale(Locale locale) {
Resources res = mContext.getResources();
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.locale = new Locale(locale.toString().toLowerCase());
res.updateConfiguration(conf, dm);
}
有谁知道改变了什么或我做错了什么/错过了什么?
由于
答案 0 :(得分:0)
onConfigurationChanged()
。只是致电Resources.updateConfiguration()
并不会触发此事。
答案 1 :(得分:0)
请删除 <plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
答案 2 :(得分:0)
尝试将此添加到您的活动
下的清单中android:configChanges="keyboardHidden|orientation|screenSize"