Android子活动和方向锁定

时间:2011-10-04 22:05:26

标签: android screen-orientation

我在尝试以纵向模式修复我的应用程序时做了很多搜索和试验/错误测试但是我对这个问题感到难过。

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

两种活动都以纵向模式锁定,这似乎在很大程度上都很有效。我的问题是当儿童活动结束并且我将设备物理地置于横向位置时,它暂时切换到横向模式然后再回到纵向模式。这样做我看到屏幕上的箭头等,我不想要这个。

这是来自logcat的转储:

D / cursor(1357):cursor_rotate 0
I / WindowManagerService(1357):将旋转设置为0,animFlags = 1
I / ActivityManager(1357):配置已更改:{scale = 1.0 imsi = 0/0 loc = en_US 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):surfaceDestroyed名为
D / cursor(1357):cursor_rotate 3
I / WindowManagerService(1357):将旋转设置为3,animFlags = 1
I / ActivityManager(1357):配置已更改:{scale = 1.0 imsi = 0/0 loc = en_US 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

我想看的唯一两条线是粗体,我想要消除的其他一切。偶尔,开关是无缝的,取决于时间,所以我猜测有某种竞争条件?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您可以在活动中禁用方向更改。我问了一个类似的问题here

您可以致电:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

禁用方向更改。