API版本兼容@SuppressLint 和 @TargetApi

来源:互联网 发布:海岛奇兵升船数据 编辑:程序博客网 时间:2024/06/10 03:16

使高版本API的代码在低版本SDK不报错。

@SuppressLint 和 @TargetApi达到的效果是一样的,TargetApi会根据函数里使用的API,严格匹配SDK版本,给出编译错误,但是SuppressLint 则忽略了SDK版本。TargetApi更加严谨。

例如:

AsyncTask.THREAD_POOL_EXECUTOR, 这个静态变量是API11才有的, 设置project build target 为 2.1.

这个时候eclipse会提示找不到这个变量。

只要在方法前面加一个 @TargetApi(11), 这样就不会报错了,程序已经可以跑在低版本SDK上了。

另外在代码上要加一个版本判断是否执行该代码, 例子如下

@TargetApi(11)

public void text(){

if(Build.VERSION.SDK_INT >= 11){

// 使用api11 新加 api

}

}

原创粉丝点击