如果我使用“if(android.os.Build.VERSION.SDK_INT> = 11)”,则需要反射吗

前端之家收集整理的这篇文章主要介绍了如果我使用“if(android.os.Build.VERSION.SDK_INT> = 11)”,则需要反射吗前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个针对API 11(3.0)的应用程序,但minSDKVersion为7(2.1).

我以编程方式而不是XML方式生成PreferenceActivity.在Honeycomb中,首选项布局有一个内置的图标位置,可以在每个首选项旁边显示.您可以使用prefScreen.setIcon(R.drawable.my_icon)进行设置;

所以我不想在API 7-10上这样做.这是否足以防止崩溃?

if (android.os.Build.VERSION.SDK_INT>=11)
    prefScreen.setIcon(R.drawable.myIcon);

我知道更安全的解决方案是在尝试使用它之前使用反射来检查该方法是否存在.

解决方法

根据 http://developer.android.com/training/basics/activity-lifecycle/starting.html,它暗示在Android 2.0及更高版本上使用SDK_INT常量可以安全地包装对更新API的调用,而不使用反射.

Caution: Using the SDK_INT to prevent older system’s from executing new APIs works in this way on Android 2.0 (API level 5) and higher only. Older versions will encounter a runtime exception.

猜你在找的Android相关文章