在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错误,所以在方法中还要判断版本做不同的操作,比如:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {

//

} else {// Pre GINGERBREAD

//

}

java suppresslint_@SuppressLint(NewApi)相关推荐

  1. @SuppressLint(NewApi)

    @SuppressLint("NewApi")作用是屏蔽android lint错误 在Android代码中,我们有时会使用比我们在AndroidManifest中设置的andro ...

  2. 我的Android进阶之旅------Android中高低API版本兼容使用@TargetApi或者@SuppressLint(NewApi)...

    Android中高低API版本兼容使用@TargetApi或者@SuppressLint("NewApi") 例如:AndroidManifest.xml中,我们配置了sdk版本的 ...

  3. java入门(p1)进入java的世界

    浅谈java世界(连载中P1) Java是一门语言,它并不是很难理解的东西,语言是来进行交流的工具,那么它用来跟谁来交互呢,所有的语言都有与其交流的对象,中文也好英文也罢,交流基本的对象应该有人对吧, ...

  4. 用 XStream 序列化/反序列化 XML 为 Java 对象(实例)

    用 XStream 序列化/反序列化 XML 为 Java 对象(实例) Posted on 2007-06-05 19:06 Stephen Wong 阅读(1224) 评论(0)  编辑 收藏 网 ...

  5. Java虚拟机(JVM)

    Java虚拟机(JVM)是能够让计算机运行Java程序的虚拟且可以计算运作的机器.JVM有三个概念:规范文档.实现和实例.规范文档是规范地说明Java虚拟机必须有哪些实现的文档.单一的规范文档保证了所 ...

  6. Java模式(适配器模式)

    今天看了下Java中的适配器模式,以下就来小做下总结和谈谈感想,以便日后使用. 首先,先来先讲讲适配器.适配就是由"源"到"目标"的适配,而当中链接两者的关系就 ...

  7. Objective-C 入门(七)协议 protocol(JAVA中的接口)

    Objective-C 入门(七)协议 protocol(JAVA中的接口) 接口的作用想必大家都比较了解 OV中的 protocol 相比接口作用相似 语法稍有不同 1.先来看声明一个协议 在创建文 ...

  8. Java总结篇系列:Java多线程(二)

    本文承接上一篇文章<Java总结篇系列:Java多线程(一)>. 四.Java多线程的阻塞状态与线程控制 上文已经提到Java阻塞的几种具体类型.下面分别看下引起Java线程阻塞的主要方法 ...

  9. Java 多线程(七) 线程间的通信

    Java 多线程(七) 线程间的通信--wait及notify方法 线程间的相互作用 线程间的相互作用:线程之间需要一些协调通信,来共同完成一件任务. Object类中相关的方法有两个notify方法 ...

最新文章

  1. WCF 框架运行时类图
  2. 全球及中国汽车紧急呼叫终端行业运营模式及未来投资方向建议报告2022版
  3. jqGrid细节备注—page参数的设置
  4. 数据结构:用栈实现中缀表达式的求值(文字描述+详细步骤示例)
  5. 使用c++查看linux服务器某个进程正在使用的内存_精选20个常用的Linux命令
  6. 工作闲了觉得无聊,忙了觉得累......
  7. python在财务中的应用-【手把手教你】Python金融财务分析
  8. Tomcat报错:The server does not support version 3.0 of the J2EE Web module specification
  9. wordpress中直接执行mysql查询语句的常用方法
  10. sh与bash中的export语法的区别
  11. TCP IP通讯三次握手四次挥手
  12. 封堵高危端口,预防勒索病毒
  13. 基于Web2.0的异构数字资源检索系统研究与开发
  14. stm32 win7 64位虚拟串口驱动安装失败解决办法
  15. 软件测试需求频繁变更,软件测试人员如何测试需求频繁变动的项目
  16. 阈的粤语发音_粤语发音规则完整版
  17. PDF转换成excel的绿色版软件推荐
  18. Could not start on port 1099 3837
  19. laravel5.0学习系列1之 路由
  20. 2022云南省职业院校技能大赛(高职组) Web技术(网站设计与开发)赛项规程

热门文章

  1. linux conda创建虚拟环境
  2. [Big Data - Kafka] Kafka设计解析(四):Kafka Consumer解析
  3. LeetCode Notes_#206 Reverse Linked List(C++,Python)
  4. PHP的抽象类与接口
  5. 用node.js给图片加水印
  6. 在Google使用Borg进行大规模集群的管理 5-6
  7. Hibernate 系列 02 - Hibernate介绍及其环境搭建
  8. iOS 将16进制字符串转换成UIColor
  9. 传真故障排除示例--网络环境存在丢包导致传真失败
  10. node.js 学习笔记四:读取文件