在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  
            //  
}

 

相关文章:

  • 2022-02-06
  • 2021-12-26
  • 2022-02-14
  • 2022-12-23
  • 2021-05-10
  • 2021-11-02
  • 2021-07-31
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-12
  • 2022-12-23
  • 2021-09-12
  • 2021-11-15
相关资源
相似解决方案