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

[java] view plain copy

  1. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
  2. //
  3. } else {// Pre GINGERBREAD
  4. //
  5. }
时间: 2024-09-30 10:28:48

@SuppressLint("NewApi")的相关文章

@SuppressLint("NewApi")和@TargetApi()的区别

转自:http://blog.csdn.NET/wbshuang09/article/details/44920549在Android代码中,我们有时会使用比我们在AndroidManifest中设置的android:minSdkVersion版本更高的方法,此时编译器会提示警告,解决方法是在方法上加上@SuppressLint("NewApi")或者@TargetApi(). 那他们之间有什么区别呢,很简单, @SuppressLint("NewApi")屏蔽一切

@SuppressLint("NewApi")的作用

在我们日常开发Android当中,经常遇到写了一段正常的代码,但是系统报错,然后根据系统提示, 会帮我们自动添加一个@SuppressLint("NewApi"),然后错误就撤销了 原因是我们代码中使用了比我们所设置的android:minSdkVersion=  (即兼容最低版本)要高的方法 一般解决方法是在方法上加上@SuppressLint("NewApi")或者@TargetApi()或者设置更高的最低版本 1.@SuppressLint("New

(转)在低版本的SDK里使用高版本函数@SuppressLint("NewApi") or @TargetApi?

@SuppressLint 和 @TargetApi达到的效果是一样的,相对于SuppressLint ,TargetApi会根据函数里使用的API,严格匹配SDK版本,给出编译错误,但是SuppressLint 则忽略了SDK版本. 例如: [java] view plaincopy @TargetApi(Build.VERSION_CODES.FROYO) public static File getExternalCacheDir(Context context) { File dir;

android.annotation.SuppressLint

Lint是一个静态检查器,它围绕Android项目的正确性.安全性.性能.可用性以及可访问性进行分析.它检查的对象包括XML资源.位图.ProGuard配置文件.源文件甚至编译后的字节码. Lint包含了API版本检查.性能检查以及其他诸多特性. 其中还有一个重要的改动是Lint可以使用@SuppressLint标注忽略指定的警告. lint官方的说法是 Improving Your Code with lint,应该是帮助提升代码的 ,如果不想用的话,可以右键点工程,然后在android to

android中的用户资源访问(一)

这几天要总结一下android开发中的用户资源访问. android中的用户资源存在项目工程中res文件夹下,有字符串.颜色.大小.数组.布局.样式.主题等资源,这些资源可以在xml文件中引用,也可以在android源码文件中使用,今天总结一下字符串.颜色.大小.数组.布局和图片资源. 总的来说,在xml文件中引用的格式为[<package>.]@/XXX/name:在源码中引用格式是[<package>.]R.XXX.name. 先贴上在xml文件中引用的代码(在布局xml文件中

Android:ViewPager扩展详解——带有导航的ViewPagerIndicator(附带图片缓存,异步加载图片)

大家都用过viewpager了, github上有对viewpager进行扩展,导航风格更加丰富,这个开源项目是ViewPagerIndicator,很好用,但是例子比较简单,实际用起来要进行很多扩展,比如在fragment里进行图片缓存和图片异步加载. 下面是ViewPagerIndicator源码运行后的效果,大家也都看过了,我多此一举截几张图: 下载源码请点击这里 ===========================================华丽的分割线==============

android录制视屏(预览,倒计时)

android用mediarecord录制视屏,可以设置视屏格式,大小,还有拍摄前预览,倒计时功能要自己用hander做. 1,CameraPreview.java //预览class public class CameraPreview extends SurfaceView implements Callback { private static final String TAG = "TAG-CameraPreview"; private SurfaceHolder mHolde

Android相机开发详解(一)

Android相机开发详解(一) 请支持原创,尊重原创,转载请注明出处:http://blog.csdn.net/kangweijian(来自kangweijian的csdn博客) Android相机开发能够实现打开相机,前后摄像头切换,摄像预览,保存图片,浏览已拍照图片等相机功能. Android相机开发详解(一)主要实现打开相机,摄像预览,前后置摄像头切换,保存图片等四个功能. Android相机开发详解(二)主要实现翻页浏览相片,触控缩放浏览图片,删除图片,发送图片等四个功能. Andro

安卓TV开发(十) 智能电视开发之在线视频直播

转载注明出处:http://blog.csdn.net/sk719887916/article/details/46582987 从<安卓TV开发(八) 移动智能终端多媒体之在线加载网页视频源> 中我总结了怎么去解析一个网页,获取里面数据实现展现,如何去播放视频呢,今天就给大家简单介绍下比较常用视频开源框架vitamio,  项目sdk地址:https://www.vitamio.org/en/  .              解压vitamio sdk 可以看到有个InitActivity的