所以代码如下:
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 (API9),它不应该支持Build.VERSION_CODES.ICE_CREAM_SANDWICH,但它仍然可以运行,为什么?如果它是我调用的方法,它就会崩溃。是不是因为它是一个public static final int,并因此被添加到我的代码中?请提供一些一般细节,而不仅仅是一个是/否的答案:)
发布于 2012-02-29 15:51:58
正如Stefan所指出的,用于编译代码的api级别决定了编译时可见的常量。对于我的情况,这不会带来任何问题,因为我只是比较简单的值。只有当你使用一个使用不同常量的set方法,并且你碰巧使用了一个你的api版本无法处理的常量时,这才会产生问题。
https://stackoverflow.com/questions/9452756
复制相似问题