android - 即使 list 配置发生更改,onConfigurationChanged 也不会被调用 - 为什么?

标签 android manifest screen-rotation onconfigurationchanged

我知道这个问题很糟糕,done thousands of times ;但说实话,我已经被困了 4 个小时试图解决这个问题。从 2009 年到今天,我访问了每个链接,所有链接都给出了相同的解决方案,但(**** 知道为什么)不适用于我的案例。

这是我的 list 中的 Activity :

<activity 
android:name="com.example.activities.CamerasActivity"
android:configChanges="orientation|screenSize">
</activity> 

我使用的是 SDK 4.0 或更高版本:

<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="19" />

这是我的课:

public class CamerasActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.cameras_activity);

        VideoView videoView = (VideoView)findViewById(R.id.action_cameras);
        videoView.setVideoPath("/storage/sdcard/teste.mp4");
        videoView.start();
    }

    //Still not working
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

        if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE)
        {
            Log.d("System.out", "Welcome to Landscape Mode");
        }
        else if(newConfig.orientation==Configuration.ORIENTATION_PORTRAIT)
        {
            Log.d("System.out", "Welcome to portrait mode");
        }
    }
}

当我像这样运行我的应用程序时,我可以在纵向模式下看到,工作正常。如果我在 list 上使用 android:screenOrientation="landscape" ,我可以看到强制处于横向模式。这意味着我的布局很好,但为什么当我尝试旋转屏幕时我的 onConfigurationChanged 没有被调用?我错过了什么?

编辑:

AVD 配置:

enter image description here

启用自动旋转: enter image description here

视频的样子: enter image description here 我的 logcat 上没有输出。

最佳答案

当您物理旋转 Android 设备时,会调用 onConfigurationChanged 方法。因此,您需要旋转设备才能看到该方法被调用。

注意:当您更改区域设置等时,也会调用 onConfigurationChanged。请参阅 here了解更多信息。

另外,我将为 android:configChanges 指令设置以下值:

android:configChanges="orientation|screenSize|layoutDirection

此外,问题 61671可能与本文中描述的屏幕方向问题有关。 截至 2014 年 4 月,Google 尚未解决此缺陷/错误。

解决方法

如本 SO link 中所述,如果设备类型设置为通用 7 英寸平板电脑而不是 Nexus 7,屏幕方向可能会起作用。

关于android - 即使 list 配置发生更改,onConfigurationChanged 也不会被调用 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22800556/

相关文章:

c# - "Run as administrator"选项没有出现在资源管理器的上下文菜单中

Android AsyncTask ProgressDialog轮换配置不同

javascript - 使用窗口方向修复 ipad 缩放问题

java - android: 无法播放视频

Android 矢量可绘制应用程序 :srcCompat not showing images

android - 是否允许将服务嵌套到应用程序中?

java - 应用程序在旋转时崩溃,NullPointerException

android - 为什么在运行我的项目时会出现此 google guava 错误?

android - `PreferenceScreen`需要高度和宽度吗?

Puppet - 完全删除 ini_setting