2012-08-14 289 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

回答