Android中的向后兼容性

时间:2012-07-24 18:27:47

标签: android

我需要在Android SDK v9中调用方法,同时保持与旧版本的兼容性。

Android developer blog建议使用反射或包装类,但这是否真的有必要?为什么我不能这样做?

if (Build.VERSION.SDK_INT >= 9)
    callNewMethod();

在我看来,这将由于Java运行时链接而起作用,因为我正在使用SDK 9构建。这种方法有什么问题吗?

提前致谢...

2 个答案:

答案 0 :(得分:1)

不一定是更好的答案,但是您在那里进行的检查假定OS / ROM的构建器正确设置了该值。如果设置不正确,那么您可能会尝试访问SDK 9中实际不存在的方法。使用反射是唯一可以100%确定您不会通过尝试调用不存在的方法来生成运行时错误的方法。

答案 1 :(得分:1)

一点也不。实际上,在开发具有广泛API级别目标的应用程序时,它被推广为最佳方法。

如果您不知道类内容是什么并且方法存在,那么Reflection类是最可靠的方法。但在Android中,您知道支持的内容和不支持的内容。

结果,我不喜欢你给的博客:p