版本:Android stuido 2.2
其实他们的作用都是屏蔽使用新的方法中的API时报错的问题。打个比方。我写了一个蓝牙操作的demo,它的配置是这样的:
1. minSdkVersion 16 2. targetSdkVersion 24
我在代码中增加了一个回调的定义:
private ScanCallback scanCallback = new ScanCallback() { @Override public void onScanResult(int callbackType, ScanResult result) { super.onScanResult(callbackType, result); } };
这个时候IDE会报警告给我。我可以有三个方法可以去除该警告,那就是在文件头部加入下面三个声明中的任意一个:
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@SuppressLint(“NewApi”)
要注意的是,上面这些方法只是去除警告并没有解决程序在不平版本的系统中运行的问题,比如上面这个示例中,如果demo是在低于android L的系统中运行还是会出错。所以类似这样的问题还是要结合Build.VERSION.SDK_INT一起使用,像下面这样:
if(Build.VERSION.SDK_INT >= 23)
{
//使用api 23以上加入的方法
}