安卓开发中,在低版本SDK使用高版本的API会报错。一般处理方法是换一种实现方法,或者在高版本SDK中使用高版本API,低版本SDK中使用效果可能会差点的折衷方案;后者可以用如下技巧来实现。
来源:互联网 发布:数据库保护问题包括 编辑:程序博客网 时间:2024/04/30 05:52
转载自:http://www.360doc.com/content/14/1113/09/11800748_424743381.shtml
安卓开发中,在低版本SDK使用高版本的API会报错。一般处理方法是换一种实现方法,或者在高版本SDK中使用高版本API,低版本SDK中使用效果可能会差点的折衷方案;后者可以用如下技巧来实现。
步骤
Step 1
在使用了高版本API的方法前面加一个 @TargetApi(API号)
Step 2
在代码上用版本判断来控制不同版本使用不同的代码
eg.
@TargetApi(11) public void text(){ if(Build.VERSION.SDK_INT >= 11){ // 使用api11 新加 api的方法 } else { // 低版本的折衷处理方法 } }
知识点
1.Annotation
Annotation继承自java.lang.annotation.Annotation的类,用于向程序分析工具或虚拟机提供package class field methed 等方面的信息。Annotation 提供了一条与程序元素关联任何信息或者任何元数据(metadata)的途径。从某些方面看, annotation 就像修饰符一样被使用,并应用于包、类 型、构造方法、方法、成员变量、参数、本地变量的声明中。这些信息被存储在annotation的“name=value”结构对中。 annotation 类型是一种接口,能够通过java反射API的方式提供对其信息的访问。
annotaion 不影响程序代码的执行,无论增加、删除 annotation ,代码都始终如一的执行。
annotaion 与其他类的主要不同之处在于其使用方式;只要按照“@+annotation类型名称+(..逗号分割的name-value对...)”的组成语法,写在需要的地方。其中成员可以按照任何的顺序。如果 annotation 类型定义了某个成员的默认值,则这个成员可以被省略,eg.@Override。
annotation 方式写程序简短实用易维护,所以越来越成为主流。
2.Android lint
Android lint是一个代码扫描工具,能够帮助我们识别代码结构存在的问题,比如使用了高于minSdk的api。
3.@TargetAPI Annotation
@TargetAPI 对应android.annotation.TargetApi,与它相似的注解还有@SuppressLint,作用都是告诉编译器:你可以忽略掉lint错误了,我用高于minSdk的api又咋滴?要你管啊~我不怕啊^_^
为什么这里我们用 @TargetAPI 而不用@SuppressLint,因为@TargetAPI还能指明应用的API版本,在代码中获得平台的SDK版本与这个版本对比后提示应用与平台的兼容性,比如现在的TargetAPI指定为11,以后我用了13的,仍然会得到版本不兼容的提示;而@SuppressLint做不到这一点,所以@TargetAPI更优。
- 安卓开发中,在低版本SDK使用高版本的API会报错。一般处理方法是换一种实现方法,或者在高版本SDK中使用高版本API,低版本SDK中使用效果可能会差点的折衷方案;后者可以用如下技巧来实现。
- @TargetAPI标注实现在低版本SDK中使用高版本API
- 低版本SDK实现高版本api
- 在xcode5中使用低版本sdk
- 在低版本的SDK里使用高版本函数@SuppressLint("NewApi") or @TargetApi?
- Android 高版本API方法在低版本系统上的兼容性处理
- Android 高版本API方法在低版本系统上的兼容性处理
- Android 高版本API方法在低版本系统上的兼容性处理
- Android 高版本API方法在低版本系统上的兼容性处理
- “低版本中使用高版本中出现的类”之技术实现原理详解
- 两种方法快速搞定高版本的cad图怎么在低版本中打开
- 在windows下使用高版本的OpenGL SDK?
- 在Xcode中安装低版本的SDK和模拟器
- 在Xcode中安装低版本的SDK和模拟器
- 怎么在低版本中使用MenuItem的setShowAsAction方法
- 在Xcode6以及更高版本使用Xcode低版本SDK
- 黑魔法——“低版本中使用高版本中出现的类”之技术实现原理详解
- XCode5使用低版本SDK
- 根据MVP项目设计模式模拟的登录功能
- python 异常处理
- linux ubuntu下安装java,mysql与tomcat,redis
- java变量的初始化顺序小结
- spring注解
- 安卓开发中,在低版本SDK使用高版本的API会报错。一般处理方法是换一种实现方法,或者在高版本SDK中使用高版本API,低版本SDK中使用效果可能会差点的折衷方案;后者可以用如下技巧来实现。
- weblogic部署失败
- eclipse项目中,dubbo.xml不能识别schema报错
- YD-JS内容
- Hibernate中一级缓存、二级缓存及查询缓存的技术性总结
- ///
- git tag — 标签相关操作
- ActiveMQ学习总结(10)——ActiveMQ采用Spring注解方式发送和监听
- MySQl使用基础命令1