onConfigurationChanged() не вызывается для Android:configChanges="плотность"
Я добавил Android:configChanges="плотность" для активности в файле манифеста. Но я не получаю обратный вызов onConfigurationChanged()
<?xml version="1.0" encoding="utf-8"?>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".ClientActivity" android:configChanges="density">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Я упомянул ниже метод onConfigurationChanged(). На самом деле я ничего не делаю внутри этого. Если мне перезвонят, я хочу продолжить.
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
}
2 ответа
Добавить в манифест
android:configChanges="keyboardHidden|orientation|screenSize"
добавить в активность.
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Log.d("OrientationMyApp", "Current Orientation : Landscape");
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Log.d("OrientationMyApp", "Current Orientation : Portrait");
// Your magic here for portrait mode
}
}
У меня была такая же проблема, и она сводила меня с ума. Для меня было исправлено добавление наименьшегоScreenSize:
android:configChanges="density|smallestScreenSize"
у меня уже былоscreenSize|screenLayout|layoutDirection
а также по другим причинам, это тоже может быть необходимо. Я бы предложил поэкспериментировать со всеми возможными атрибутами дляandroid:configChanges
пока это не сработает.
https://developer.android.com/guide/topics/manifest/activity-element#config