使高版本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
}
}