Android解决与SDK_INT hack的兼容性问题;这个可以吗?

时间:2012-02-07 20:35:39

标签: android android-compatibility

运行以下内容(注意:目标> 3.0)

ActionBar actionBar = getActionBar();
Android上的

版本< 3.0(SDK 11)产生NoSuchMethodError

有几种方法可以解决这个问题,包括反射和类延迟加载。但是,以下内容似乎适用于我测试的所有设备(2.3.6,3.0,3.1,4.0):

boolean hasActionBar = android.os.Build.VERSION.SDK_INT >= 11;

if (hasActionBar) {
    ActionBar actionBar = getActionBar();
} else {
    // create custom actionbar
}

请注意,SDK_INT参数为static final,这似乎是其有效的原因。

这是处理兼容性的有效方法吗?

2 个答案:

答案 0 :(得分:2)

我相信,只要一切都设置正确。

来自Reto Meier的博客: http://blog.radioactiveyak.com/2011/02/strategies-for-honeycomb-and-backwards.html

答案 1 :(得分:1)

由于JIT编译器,它看起来很有效。此代码在SDK< 2.1,它支持这一理论。无论如何,这可能不是避免反射的可靠方法。

相关问题