2012-08-14 59 views
0

我得到这个程序,在我按下按钮后开始执行一些任务,并且在此任务运行时不允许改变其方向。我弄清楚了如何做到这一点,但我的问题是,我的代码只能用一种方式。在任务正在运行时,它会在纵向上保持成功定向,并且只有在任务完成后(如果用户在任务期间旋转设备),才会将方向更改为横向。但横向模式下的相同情况失败。即使任务正在运行,它也会旋转到纵向。防止改变方向

这里是我用来保持方向仍然的代码。此代码是在按钮的onClick方法:

final int ori = getResources().getConfiguration().orientation; 
     setRequestedOrientation(ori); 

然后我有我的处理程序类,检查每一秒,如果任务已经完成,如果他们是它给我的设备premission改变方向。要做到这一点,我用这个代码:

setRequestedOrientation(-1); // as far as I know -1 in this case means unspecified 

我也试过setRequestedOrientation(4);setRequestedOrientation(10);

+2

你不应该使用硬编码整数。在[文档](http://developer.android.com/reference/android/content/pm/ActivityInfo.html)中,他们列出了屏幕方向的类型。我想你正在寻找'setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);'。 – Eric 2012-08-14 23:21:29

+0

试过这个,结果和我自己的代码一样。 – 2012-08-14 23:31:00

+0

有趣。您是否尝试过在完成任务后在纵向和横向之间更改它,以查看方向是否可以更改? – Eric 2012-08-14 23:34:41

回答