在Activity中没有调用Android onConfigurationChanged()

lit*_*leK 8 java android orientation android-activity

我意识到这个主题还有其他一些帖子,但这些帖子的解决方案对我不起作用.

基本上,我想停止我的Activity重新启动设备方向更改.为此,我修改了清单文件中的活动:

        <activity android:name=".MyActivity" android:configChanges="orientation|keyboardHidden"></activity>
Run Code Online (Sandbox Code Playgroud)

onConfigurationChanged()在我的活动中覆盖了:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    System.out.println("IN onConfigurationChanged()");
}
Run Code Online (Sandbox Code Playgroud)

但是,在方向更改时,活动仍在重新启动,并且onConfigurationChanged()未调用该方法.

有谁知道为什么会这样?

leo*_*ian 8

你应该使用13 API并在你的活动的清单部分设置这个配置:android:configChanges ="orientation | keyboardHidden | screenSize"

它工作正常.在所有Android版本.

  • 除了我之外,这对每个人来说都是显而易见的,但这可以在清单的"活动"部分中找到. (3认同)