美文网首页Android开发
@SuppressLint("NewApi")、@TargetA

@SuppressLint("NewApi")、@TargetA

作者: 指尖力量 | 来源:发表于2019-08-01 15:50 被阅读0次

        当你使用一个较高版本才有的api(比工程中的minSdkVersion高)时,编译器会报错,这个时候就需要标题所述的几种注解了,他们都可以让编译顺利通过,但到底有什么不同呢?

    @SuppressLint("NewApi")屏蔽一切新api中才能使用的方法报的android lint错误。@TargetApi() 只屏蔽某一新api中才能使用的方法报的android lint错误。@RequiresApi与旧版@TargetApi注释的目的相似,但更清楚表示这是调用者的要求,而不是用于“抑制”警告。(其它方面基本没有区别)

    举个例子,某个方法中使用了api 9新加入的方法,而项目设置的android:minSdkVersion = 8 ,此时在方法上加 @SuppressLint("NewApi")和@TargetApi(Build.VERSION_CODES.GINGERBREAD)都可以,以上是通用的情况。而当你在此方法中又引用了一个api 11才加入的方法时,@TargetApi(Build.VERSION_CODES.GINGERBREAD)注解的方法又报错了,而@SuppressLint("NewApi")不会报错,这就是区别。

        以上就是三者的区别比较,个人建议直接使用@SuppressLint("NewApi")。当然了注解的作用只是让编译通过,而并没有避免低版本的系统运行高版本的api的问题,在使用时我们需要自己判断版本号来使用不同版本的api。

        

    参考图片

    相关文章

      网友评论

        本文标题:@SuppressLint("NewApi")、@TargetA

        本文链接:https://www.haomeiwen.com/subject/pbgqdctx.html