• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
山高我为峰
博客园    首页    新随笔    联系   管理    订阅  订阅
android.annotation.SuppressLint
Lint是一个静态检查器,它围绕Android项目的正确性、安全性、性能、可用性以及可访问性进行分析。
它检查的对象包括XML资源、位图、ProGuard配置文件、源文件甚至编译后的字节码。
Lint包含了API版本检查、性能检查以及其他诸多特性。
其中还有一个重要的改动是Lint可以使用@SuppressLint标注忽略指定的警告。
lint官方的说法是 Improving Your Code with lint,应该是帮助提升代码的 ,
如果不想用的话,可以右键点工程,然后在android tools 中,选择 clear lint marker 就没有这个错误了
/*************************************************/
@SuppressLint("NewApi") 在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  
           //  
}  

 


 

posted on 2016-08-18 11:42  山高我为峰  阅读(9054)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3