在低版本的SDK里使用高版本函数@SuppressLint("NewApi") or @TargetApi?
2014-04-07 08:25
423 查看
@SuppressLint 和 @TargetApi达到的效果是一样的,相对于SuppressLint ,TargetApi会根据函数里使用的API,严格匹配SDK版本,给出编译错误,但是SuppressLint 则忽略了SDK版本。
例如:
例如:
@TargetApi(Build.VERSION_CODES.FROYO) public static File getExternalCacheDir(Context context) { File dir; // if (!VersionUtils.hasDonut()) { if (!VersionUtils.hasFroyo()) { dir = new File(Environment.getExternalStorageDirectory().getPath() + "/Android/data/" + context.getPackageName() + "/cache/"); if (!dir.exists() && !dir.mkdirs()) dir = null; } else { dir = context.getExternalCacheDir(); } return dir; }如果把VersionUtils.hasFroyo()改成VersionUtils.hasDonut()则会报编译错误,如果是@SuppressLint("NewApi") 则不会提示错误。比较严谨的角度讲,更加推荐TargetApi
相关文章推荐
- (转)在低版本的SDK里使用高版本函数@SuppressLint("NewApi") or @TargetApi?
- @SuppressLint("NewApi")和@TargetApi(number)使用比较
- 我的Android进阶之旅------>Android中高低API版本兼容使用@TargetApi或者@SuppressLint("NewApi")
- 【Android】高低API版本兼容之@TargetApi与@SuppressLint("NewApi")
- @SuppressLint("NewApi")和@TargetApi()的区别
- android 基础 @SuppressLint("NewApi")和@TargetApi()的作用与区别
- @SuppressLint("NewApi")和@TargetApi()的区别
- @SuppressLint("NewApi")和@TargetApi()的区别
- Android @SuppressLint("NewApi")和@TargetApi()的区别
- Android中Build类以及@SuppressLint("NewApi")和@TargetApi()区别
- @SuppressLint("NewApi")和@TargetApi()的区别
- @SuppressLint("NewApi")和@TargetApi()的区别
- @SuppressLint("NewApi")和@TargetApi()的区别
- 请减少使用@SuppressLint("NewApi")
- 关于android的@TargetApi和@SuppressLint("NewApi")
- @SuppressLint("NewApi")和@TargetApi()的区别
- @SuppressLint("NewApi")和@TargetApi()的区别
- @SuppressLint("NewApi")和@TargetApi()的区别
- @SuppressLint("NewApi")和@TargetApi()的区别章标题
- @SuppressLint("NewApi")和@TargetApi()的区别