为什么这样做(googleIO acionbarherlper?

时间:2012-02-26 11:37:33

标签: android version android-actionbar

所以代码如下:

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但是它运行了,为什么呢?如果它是我称之为它的方法就会崩溃。是因为它是一个公共的静态final int并因此添加到我的代码中?请提供一些一般性的细节,而不只是一个是/否答案:)

1 个答案:

答案 0 :(得分:0)

正如Stefan所指出的,用于编译代码的api级别确定了在编译时可见的常量。对于我的情况,这不会产生任何问题,因为我只是比较简单的值。如果你使用一个使用不同常量的set方法,并且你碰巧使用了一个无法处理api版本的常量,那么这只会产生问题。