(转)在低版本的SDK里使用高版本函数@SuppressLint("NewApi") or @TargetApi?

@SuppressLint 和 @TargetApi达到的效果是一样的,相对于SuppressLint ,TargetApi会根据函数里使用的API,严格匹配SDK版本,给出编译错误,但是SuppressLint 则忽略了SDK版本。

例如:

[java] view plaincopy

  1. @TargetApi(Build.VERSION_CODES.FROYO)
  2. public static File getExternalCacheDir(Context context) {
  3. File dir;
  4. //        if (!VersionUtils.hasDonut()) {
  5. if (!VersionUtils.hasFroyo()) {
  6. dir = new File(Environment.getExternalStorageDirectory().getPath()
  7. + "/Android/data/" + context.getPackageName() + "/cache/");
  8. if (!dir.exists() && !dir.mkdirs())
  9. dir = null;
  10. } else {
  11. dir = context.getExternalCacheDir();
  12. }
  13. return dir;
  14. }

如果把VersionUtils.hasFroyo()改成VersionUtils.hasDonut()则会报编译错误,如果是@SuppressLint("NewApi") 则不会提示错误。比较严谨的角度讲,更加推荐TargetApi

原文地址:http://blog.csdn.net/hero_yin/article/details/23081129

时间: 2024-11-10 11:25:19

(转)在低版本的SDK里使用高版本函数@SuppressLint("NewApi") or @TargetApi?的相关文章

怎么使用CAD版本转换器,如何将高版本CAD转低版本?

怎么使用CAD版本转换器,如何将高版本CAD转低版本?在CAD行业中,每天都会接触到CAD图纸,而且在查看CAD图纸的过程中肯定会遇到许多的问题,那就是有的时候在查看dwg格式的CAD图纸的时候,不管怎么样都打不开,小编后来才知道是CAD文件的版本太高的缘故,不知道小伙伴们有没有遇到过这样的情况,那这样我们要怎么使用CAD版本转换器,又如何将高版本的CAD转低版本呢?具体要怎么来进行操作?那下面小编就来教教大家具体操作方法. 第一步:首先,打开电脑,在电脑桌面上任意的打开一个浏览器,在浏览器的搜

怎么将低版本的CAD转换成高版本

怎么将低版本的CAD转换成高版本?就是在我们日常的工作中,每天最常见的就是CAD格式的图纸,但是有的时候在网上查找的CAD图纸,在进行打开的时候发现打不开,那就是因为CAD文件的版本太低,导致在较高的CAD编辑器中打不开,这个时候我们就需要将CAD版本精装转换,那怎么将低版本的CAD转换成高版本,具体要怎么来进行操作了,下面小编就是用迅捷CAD转换来教大家具体的操作步骤,有兴趣的朋友可以来看一下. 第一步:首先打开自己常用的电脑,如果电脑桌面中没有CAD转换器的,可以在电脑桌面中任意的打开一个浏

[Sqlite]-->数据迁移备份--从低版本3.6.2到高版本3.8.6

数据迁移 一, 使用.dump命令 命令帮助提示 .dump ?TABLE? ...      Dump the database in an SQL text format If TABLE specified, only dump tables matching LIKE pattern TABLE. 理解分析:       使用.dump命令可以将数据库对象导出成SQL格式.不带任何参数时,.dump将整个数据库导出为数据库定义语言(DDL)和数据库操作语言(DML)命令,适合重新创建数据

使用低版本的Xtrabackup还原较高版本的Xtrabackup创建的全备份文件存在的问题

最近要将使用xtrabackup备份的多台MySQL Server的数据还原到另外一台MySQL服务器上并使用不同的端口启动多个实例来作为review环境.实用程序执行自动还原的过程中有几个数据库实例启动失败.检查数据目录中的错误日志,发现如下启动错误: 2015-02-02 12:31:36 27876 [Note] Plugin 'FEDERATED' is disabled. 2015-02-02 12:31:36 27876 [Note] InnoDB: The InnoDB memor

让44.1版本的sketch打开更高版本的sketch文件

我们都知道,sketch的有效license与版本挂钩.最近设计师又更新了sketch版本,导致她生成的源文件我都无法打开. 毕竟我不是使用sketch进行UI设计,仅用它来查看设计稿参数,再花99美刀实在很不划算.而sketch导出html的方式体验非常不好,因此我只好退而求其次,让我旧版本的sketch能够打开新版本的sketch源文件就好. 分析 经过一番资料查阅,我发现:sketch文件实际上是一个使用zip打包的文件包.这个文件包里面有定义生成该文件的sketch版本以及能够打开该文件

若要使用 Project Web Access,需要 Internet Explorer 版本 5.0 或更高版本。

使用360安全浏览器 在设置  选择高级设置  内核切换设置 添加IP  内核选择IE8 原文地址:https://www.cnblogs.com/eastward/p/11737237.html

高版本->低版本迁移,低版本客户端连接高版本数据库EXP导出报错EXP-00008,ORA-01455,EXP-00000

生产环境: 源数据库:RHEL + Oracle 11.2.0.3 目标数据库:HP-UX + Oracle 10.2.0.4 需求:迁移部分表  11.2.0.3-->10.2.0.4,若迁移范围内的有些表在目标库已经存在,则替换. 本次迁移数据量<1G. 初定方案:低版本的客户端连接到高版本数据库,用低版本导出,低版本导入. 1.采用初定方案,目标数据库所在服务器连接到源数据库,exp导出过程中报错. ZJCRNOPDB 36: sqlplus -version SQL*Plus: Rel

高版本Eclipse使用Maven纠正

最近要使用Maven下载阿里云的SDK.对于高版本Eclipse,网上教程普遍存在问题,特此分享. 网上教程的方式可以看做3步:(1)在Eclipse上安装Maven插件.(2)从Apache官网下载Maven并安装.(3)将二者关联起来. 但高版本Eclipse已经自己安装了Maven,一旦把二者关联起来,搜索和下载就会出现奇怪的错误.如果试图将本地Maven删除,会发现很难彻底删除干净,依然会报错. 本人解决方法:重装系统,并且将C盘以外的盘都格式化.安装Eclipse,不再从Apache官

低版本中使用高版本出现的类怎么办?

原理概述 简单来说就是三个字——黑魔法. 利用这种黑魔法的例子已经越来越多,我所知道的最早使用这种方法的是一个老外在三年为了解决NSUUID而使用的. 我们国内团队开发的FDStackView是一个非常好的开源库,已经有1500+颗星星了,希望大家多多支持我们国内的团队,在FDStackView库中也用到了相同的技术,网上有人发出了分析实现原理的文章,但分析的很浅,而且根本没有说在点子上,使得这种黑魔法的魅力并没有被大家欣赏到,我这里做了一些功课,把这个原理详细的阐述一下,以及这里的关键点在哪里