注意:本篇文章是本人阅读相关文章所写下的总结,方便以后查阅,所有内容非原创,侵权删。
本篇文章内容来自于
Android高低API版本兼容之@TargetApi
目录
- 对一些警告信息的过滤 @SuppressWarnings
- 使高版本API的代码在低版本SDK不报错 @TargetApi
- 屏蔽android lint错误 @SuppressLint
1. @SuppressWarnings
表示对一些警告信息的过滤
使用
@SuppressWarnings("unchecked")
告诉编译器忽略 unchecked 警告信息,如使用List,ArrayList等未进行参数化产生的警告信息。
2. @TargetApi
使用@TargetApi,使高版本API的代码在低版本SDK不报错
@TargetApi(19)
举例
AsyncTask.THREAD_POOL_EXECUTOR, 这个静态变量是API11才有的,设置project build target 为 2.1,这个时候AS会提示找不到这个变量。
此时只要在方法前面加一个 @TargetApi(11), 这样就不会报错了,程序已经可以跑在低版本SDK上了。
另外在代码上要加一个版本判断是否执行该代码,
@TargetApi(11)
public void text(){
if(Build.VERSION.SDK_INT >= 11){
// 使用api11 新加 api
}
}
3. @ SuppressLint
@SuppressLint("NewApi")不一样。suppress只告诉lint,我这代码如果高于你的minsdkversion,那么请忽略编译错误。
@SuppressLint("MissingPermission") 屏蔽android lint错误