ボタンを押すといくつかのタスクを開始するこのプログラムを入手しましたが、このタスクの実行中に方向を変更することはできません。私はそれを行う方法を理解しましたが、私の問題は私のコードが一方向にしか機能しないことです。タスクの実行中は縦向きを連続して維持し、タスクが完了した後にのみ横向きに向きを変更します(ユーザーがタスク中にデバイスを回転させた場合)。しかし、ランドスケープモードでも同じことが失敗します。タスクが実行されている場合でも、縦向きに回転します。
これが、向きを維持するために使用するコードです。このコードはボタンonClickメソッドにあります:
final int ori = getResources().getConfiguration().orientation;
setRequestedOrientation(ori);
次に、タスクが完了したかどうかを毎秒チェックするハンドラークラスがあり、タスクが完了した場合は、デバイスに向きを変更する権限を与えます。これを行うには、次のコードを使用します。
setRequestedOrientation(-1); // as far as I know -1 in this case means unspecified
私も試しましsetRequestedOrientation(4);
たsetRequestedOrientation(10);