为了使我的应用程序固定在纵向模式下,我已经做了很多搜索和试验/错误测试,但是我对此感到很困惑。

背景:该应用程序的主要活动是显示具有各种过渡效果的静态图像。它使用子活动来显示MediaPlayer,因为SurfaceView(需要显示影片剪辑)削弱了静态图像过渡的显示性能。

两种活动都被锁定为人像模式,这似乎在大多数情况下效果很好。我的问题是,当孩子的活动结束并且我将设备实际置于横向位置时,它会暂时切换到横向模式,然后再回到纵向模式。这样做时,我会看到屏幕上的箭头等,但我不希望这样做。

这是logcat的转储:

D /光标(1357):cursor_rotate 0
I / WindowManagerService(1357):将旋转设置为0,animFlags = 1
I / ActivityManager(1357):配置已更改:{scale = 1.0 imsi = 0/0 loc = zh_CN touch = 3 keys = 1/1/2 nav = 1/1 orien = 2 layout = 35 uiMode = 17 seq = 1726}
D / main_activity(6851):onActivityResult:0
D / child_activity(6851):被破坏的表面
D /光标(1357):cursor_rotate 3
I / WindowManagerService(1357):将旋转设置为3,animFlags = 1
I / ActivityManager(1357):配置已更改:{scale = 1.0 imsi = 0/0 loc = zh_CN touch = 3 keys = 1/1/2 nav = 1/1 orien = 1 layout = 35 uiMode = 17 seq = 1727}
D / StatusBarPolicy(1357):ro.wmt.ui.portrait.hide.capbtn = 1
D / StatusBarPolicy(1357):wm.getRotation = 3
D / StatusBarPolicy(1357):ro.wmt.ui.portrait.hide.capbtn = 1
D / StatusBarPolicy(1357):wm.getRotation = 3

我想看到的仅有两行以粗体显示,其他所有我想删除的内容。有时,切换是无缝的,具体取决于计时,所以我猜测是否存在某种竞争状况?

最佳答案

您可以在Android Manifest上进行设置,就像answer建议的那样:

<activity
    android:name=".MyActivity"
    android:screenOrientation="portrait"
    android:configChanges="orientation|keyboardHidden|keyboard"/>`

10-08 19:13