Android @TargetAPI版本兼容性解析
程序员文章站
2023-01-29 20:49:18
android @targetapi版本兼容性解析,android api在高版本中会添加一些功能,但是这些功能在低版本上无法使用的,而且也会报错,因此需要使用@targetapi...
android @targetapi版本兼容性解析,android api在高版本中会添加一些功能,但是这些功能在低版本上无法使用的,而且也会报错,因此需要使用@targetapi(11)防止报错,同时在还需要在代码中加版本判断是否执行某段代码,直接看demo:
@targetapi(11) //低版本防止报错 public void text(){ if(build.version.sdk_int >= 11){ // 使用api11 新加 api 高版本运行 } }
最后说一下报错的原因,
android的 lint检查工具是为了防止代码出现提示性错误而设计的。
当androidmanifest设置了minsdkversion为8时,那么代码在使用了高于api8的代码时报错,
使用的是4.4的sdk进行的代码编译,如果没使用@targetapi,运行android lint直接也会显示错误提示。解决是在方法或类的开头写上@targetapi(xx)。如果你下面的代码要在api13的情况下运行,那么xx处你就填写13。不能填低了,填低了,还是报错。
这和@suppresslint(“newapi”)不一样。suppress只告诉lint,我这代码如果高于你的minsdkversion,那么请忽略编译错误。
最后强调一点:targetapi和你代码的运行环境没任何关系。意思就是说即使你写了@targetapi(11)。不代表你的这个 方法就会被限制在android 3.0的设备上运行。因此兼容性判断还是必不可少的。