onConfigurationChanged を呼び出していないアプリケーションがありますが、特定のケースでのみ呼び出しています。A と B の 2 つのアクティビティがあります。アクティビティ A にはグリッドビューがあり、方向に基づいて列の数を変更します。これは、onConfigurationChanged を使用して正常に機能します。
ただし、次の手順に従うと、onConfigurationChanged() は取得されません。
- アクティビティ A、オリエンテーション 1 -> アクティビティ B (静止オリエンテーション 1)
- アクティビティ B (現在は方向 2) でデバイスを回転させます。
- アクティビティ A に戻り、オリエンテーション 2 に入ります。onResume が起動され、レイアウトを調整します。
- アクティビティ A で、方向 1 に戻ります。何も起動されません (onCreate、onResume、onConfigurationChanged ... など)。レイアウトが間違っています (列数が Orientation2 に設定されています)。
この後、アクティビティ A で回転し続けると、残りの回転で onConfigurationChanged が発生し、それに応じてレイアウトが調整されます。別の活動から戻った後の最初のローテーションです。どの方向から始めても、結果は同じです。
onConfigurationChanged 以外に見るべきものはありますか?