1

我最新的(也是第一个)android 应用程序让用户可以在首选项中选择将屏幕固定为纵向或横向,或者让传感器确定方向。为了对用户的偏好做出反应,我有类似的东西

public static void setOrientation(Activity a,int orientation) {

    switch (orientation) {
    case (1): {
        a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
        break;
    }
    case (2): {
        a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        break;
    }
    case (3): {
        a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        break;
    }
    }   
}

我在 onCreate/onRestart 调用以相应地设置方向。

我现在面临的问题是,当用户从一个活动切换到下一个活动(选择固定方向)时,有时屏幕仍会根据传感器定向一秒钟,然后屏幕会按照请求的方向进行定向. 当用户选择固定方向时,有没有办法完全关闭传感器。我试图添加

a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

但到目前为止还没有成功。我很确定我监督了一些明显的事情,任何关于如何动态实现方向固定的启示都将受到高度赞赏。

非常感谢

马丁

编辑:

我在一个新帖子中重新表述了这个问题:

android - 活动切换时意外的短暂方向变化

4

2 回答 2

0

Try this...

<activity android:name="com.myapp.MyActivity"
          android:label="@string/app_name"
          android:configChanges="orientation|screenSize"
          />

for more take a look here.....

http://digitaldumptruck.jotabout.com/?p=897

This may help you.

于 2012-09-23T17:52:39.090 回答
0

尝试将此添加到您的清单中:

android:configChanges="keyboardHidden|orientation|screenSize">

这可以防止方向改变onPauseonResume

于 2012-09-23T17:46:10.730 回答