欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android @TargetAPI版本兼容性解析

程序员文章站 2022-05-21 16:21:48
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的设备上运行。因此兼容性判断还是必不可少的。