使用するたびにsetRequestedOrientation(int)
、で方向を宣言したときとは異なる動作をしますManifest.xml
。(これは想定内)
私はそれを読みました(ドキュメントから):
アクティビティが現在フォアグラウンドにあるか、画面の向きに影響を与えている場合、画面はすぐに変更されます (アクティビティが再開される可能性があります)。
実際には、これは、アプリが開始されるたびに、デバイスの向きが で設定される向きではないsetRequestedOrientation(int)
場合、アクティビティが 2 回作成されることを意味します (1 回は「通常」、もう 1 回は要求された向きを反映するため)。
現時点では、アクティビティを 100% 構成変更防止にすることは価値がありません。アクティビティを 2 回作成することなく、要求された方向をコードで設定する方法が必要です。方法はありますか?
(configChanges で「orientation」フラグを設定するなどのハック的な回避策を使用しないことが望ましい)
編集:
受け入れられた答えは正しいです、それは単に論理的ではありません(意味がありません)。新しい読者のために、私が行ったことは、スタブ アクティビティ (主にあまり機能しない空のアクティビティ) を追加することでした。getRequestedOrientation()
それが望んでいるものとは異なる場合に使用するだけsetRequestedOrientation(int)
ですsetRequestedOrientation(int)
.