3

以下を使用して、ビュー内の画面の向きを確認しています。

getResources().getConfiguration().orientation

Android の新しいバージョンでは、より多くの方向状態が提供されるため、処理したいすべての状態でスイッチを使用することを考えていました。

switch (getResources().getConfiguration().orientation) {
    case ActivityInfo.SCREEN_ORIENTATION_PORTRAIT:
    case ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT:
    case ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE:
    case ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE:
}

さて、これは古いデバイスのアプリケーションを壊しますか? いくつかの定数が API 9+ で新しくなったとしたら? final static定数 ( ) がコンパイラによってどのように処理されるかがわからないため、わかりません。それらはインライン化または参照されていますか? それらがインライン化されている場合、このメソッドに問題はないと思います。

ありがとう

4

2 に答える 2

4

さて、これは古いデバイスのアプリケーションを壊しますか?

それらをそのまま使用する場合ではありません。Java コンパイラは、コンパイル時にシンボルを数値に相当するものに置き換えます。

ただし、古いデバイスではリフレクションを介してこれらの値を取得することはできませんが、これはかなり珍しい手法です。

于 2012-06-13T17:01:25.837 に答える
0

いいえ、追加のケースによってアプリケーションが壊れることはありません。

  1. 変更により、コンパイル時に大文字と小文字が追加されます
  2. 実行時に、このケースが決定されます。
  3. 追加条件のようなものです。
于 2012-06-13T17:17:22.250 に答える