私は以下と活動しています:
android:screenOrientation="portrait"
そしてコード:
if(blah blah blah)
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
アクティビティ onCreate で。1. スマートフォンでテストすると、"setRequestedOrientation" によって破棄アクティビティが発生し、目的の画面方向で再作成されます。2. タブレット デバイスでテストすると、このコードはアクティビティを 1 回だけ実行します。「setRequestedOrientation」の後、破棄して再度作成することなく続行します。これは、onCreate でデバッガーまたはブレークポイントを使用せずにコードを開始した場合に発生します。onCreate関数で停止すると-ログに表示されます-破棄してonCreateを再度実行します。タブレットで特定の状況をキャッチする方法は?
更新: - 「方向ロック」がオフの場合、タブレットに問題が発生します。「方向ロック」が有効になっている場合、プログラムはスマートフォンと同じように機能します。
更新 2: - アプリケーション全体に優先する画面の向きを設定することは可能ですか。そのため、アクティビティが目的の方向を認識し始めるとき。これにより、不要な「setScreenOrientation」呼び出しが行われ、2 番目のアクティビティの作成が回避されます。