使用新的常量会破坏我的Android应用程序吗?

时间:2012-06-13 16:58:49

标签: java android

我正在使用以下方法检查视图中屏幕的方向:

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)。它们是内联还是引用?我认为,如果它们被内联,那么这种方法应该没有问题。

由于

2 个答案:

答案 0 :(得分:4)

  

现在,这会破坏旧设备上的应用程序吗?

如果您按照自己的方式使用它们,那就不行了。 Java编译器将在编译时用符号替换符号。

但是,你不能通过旧设备上的反射获得这些值,尽管这将是一种相当不寻常的技术。

答案 1 :(得分:0)

不,额外的案例不会破坏您的申请,因为

  1. 更改将在编译时添加额外的案例
  2. 在运行时,这个案例将确定。
  3. 这就像一个额外的条件。