@SuppressLint("NewApi")和@TargetApi()的区别
2016-02-27 12:21
375 查看
转至:http://blog.csdn.net/wbshuang09/article/details/44920549
在Android代码中,我们有时会使用比我们在AndroidManifest中设置的android:minSdkVersion版本更高的方法,此时编译器会提示警告,解决方法是在方法上加上@SuppressLint("NewApi")或者@TargetApi()。
那他们之间有什么区别呢,很简单,
@SuppressLint("NewApi")屏蔽一切新api中才能使用的方法报的android lint错误
@TargetApi() 只屏蔽某一新api中才能使用的方法报的android lint错误
举个例子,某个方法中使用了api9新加入的方法,而项目设置的android:minSdkVersion=8,此时在方法上加@SuppressLint("NewApi")和@TargetApi(Build.VERSION_CODES.GINGERBREAD)都可以,以上是通用的情况。
而当你在此方法中又引用了一个api11才加入的方法时,@TargetApi(Build.VERSION_CODES.GINGERBREAD)注解的方法又报错了,而@SuppressLint("NewApi")不会报错,这就是区别。
当然,不管你使用了哪个注解,作用仅仅是屏蔽android lint错误,所以在方法中还要判断版本做不同的操作,比如:
[java] view
plain copy
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
//
} else {// Pre GINGERBREAD
//
}
在Android代码中,我们有时会使用比我们在AndroidManifest中设置的android:minSdkVersion版本更高的方法,此时编译器会提示警告,解决方法是在方法上加上@SuppressLint("NewApi")或者@TargetApi()。
那他们之间有什么区别呢,很简单,
@SuppressLint("NewApi")屏蔽一切新api中才能使用的方法报的android lint错误
@TargetApi() 只屏蔽某一新api中才能使用的方法报的android lint错误
举个例子,某个方法中使用了api9新加入的方法,而项目设置的android:minSdkVersion=8,此时在方法上加@SuppressLint("NewApi")和@TargetApi(Build.VERSION_CODES.GINGERBREAD)都可以,以上是通用的情况。
而当你在此方法中又引用了一个api11才加入的方法时,@TargetApi(Build.VERSION_CODES.GINGERBREAD)注解的方法又报错了,而@SuppressLint("NewApi")不会报错,这就是区别。
当然,不管你使用了哪个注解,作用仅仅是屏蔽android lint错误,所以在方法中还要判断版本做不同的操作,比如:
[java] view
plain copy
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
//
} else {// Pre GINGERBREAD
//
}
相关文章推荐
- GNU概念
- INS-30001 ADMIN口令为空
- 一对多的两个表,查询主表的信息和主表在子表中的记录条数
- 随笔--《西游记之孙悟空三打白骨精》
- 栈的简单应用(模拟出栈进栈)
- Java异常处理面试题归纳
- 针对访问uri 限制ip
- js中实现多态
- iOS开发系列--Objective-C之KVC、KVO
- 开机出现fullduplex environment
- 通过正则表达式实现简单xml文件解析
- C#判断
- 无法将类型“ASP.login_aspx”转换为“System.Web.UI.WebControls.Login”
- C++中的内存分配的问题
- java JDK8 学习笔记——第18章 自定义泛型、枚举与注释
- Android的RecyclerView的初体验
- android Listview,gridview局部刷新,部分刷新
- RxJava 转换操作符scan
- Android Service的生命周期
- iOS 苹果app提交 ITC.apps.validation.prerelease_build_missing