【发布时间】:2012-02-26 11:37:32
【问题描述】:
所以代码如下:
public static ActionBarHelper createInstance(Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
return new ActionBarHelperICS(activity);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
return new ActionBarHelperHoneycomb(activity);
} else {
return new ActionBarHelperBase(activity);
}
}
如果我的设备是 2.3 (api 9),它不应该支持 Build.VERSION_CODES.ICE_CREAM_SANDWICH 但它却可以运行,这是为什么呢?如果它是我调用的一种方法,它就会崩溃。是因为它是一个公共静态最终 int 并因此添加到我的代码中吗?请给出一些一般性的细节,而不仅仅是一个是/否的答案:)
【问题讨论】:
-
用于编译代码的 API 级别决定了编译时可见的常量。因为它是一个常量,所以它被编译到代码中。
-
好的,正如我所说,没有令人讨厌的隐藏惊喜;)
标签: android version android-actionbar