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 回答