博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
@SuppressLint("NewApi")
阅读量:5288 次
发布时间:2019-06-14

本文共 726 字,大约阅读时间需要 2 分钟。

在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] 
 
 
  1. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {  
  2.             //  
  3.         } else {
    // Pre GINGERBREAD  
  4.             //  
  5.         }  

转载于:https://www.cnblogs.com/visuals/p/5187124.html

你可能感兴趣的文章
FreeBSD从零开始---安装后配置
查看>>
结构体数组 and 结构体数组大小的内存
查看>>
1078. Hashing (25)
查看>>
ios开发所有的iCON 的大小
查看>>
20171108h5的文档扫尾,解决记录的相关问题
查看>>
go语言基础教程2
查看>>
单例模式的优化之路(java)
查看>>
当一个DBA离职时,如何清除掉数据库里属于他的那些“东西” (job所有者更新)...
查看>>
struts2学习笔记--总结获取servletAPI的几种方式
查看>>
design pattern notes [1] - Bridge and composite
查看>>
TCP 的那些事儿(上) SACK
查看>>
jquery 时间运算、格式化的方法扩张
查看>>
C语言中各种进制的表示
查看>>
打印数组
查看>>
删除菜品
查看>>
如何不让DataGridView自动生成列
查看>>
不用写代码的框架 - RobotFramework+Eclispe环境安装篇
查看>>
Android Studio占用C盘内存
查看>>
火狐浏览器设置页面缩放比例方法
查看>>
[COCI2017-2018 Contest5] Birokracija
查看>>