未调用活动OnConfigurationChange

时间:2015-11-22 22:30:12

标签: android android-activity onconfigurationchanged

我的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);
}

有谁知道改变了什么或我做错了什么/错过了什么?

由于

3 个答案:

答案 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"