zoukankan      html  css  js  c++  java
  • @SuppressLint("NewApi")和@TargetApi()的区别

    转自: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 plaincopy
     
     
    1. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {  
    2.             //  
    3.         } else {// Pre GINGERBREAD  
    4.             //  
    5.         }  
     
    @SuppressLint标注忽略指定的警告
    @SuppressLint标注忽略指定的警告
    @SuppressLint标注忽略指定的警告
    这个是android带的lint工具提示的,lint官方的说法是 Improving Your Code with lint,应该是帮助提升代码的 ,如果不想用的话,可以右键点工程,然后在android tools 中,选择 clear lint marker 就没有这个错误了
     
     
  • 相关阅读:
    测试常用的sql语句总结
    测试常用的Linux命令总结
    【转载】vim 中如何替换选中行或指定几行内的文本
    1074 Reversing Linked List
    1077 Kuchiguse
    LC 355. Design Twitter
    LCP 5. 发 LeetCoin
    LC 1409. Queries on a Permutation With Key
    1095 Cars on Campus
    LC 1369. Get the Second Most Recent Activity
  • 原文地址:https://www.cnblogs.com/yaowen/p/6024555.html
Copyright © 2011-2022 走看看