在低版本的SDK里使用高版本函数

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

例如:

[java]view plaincopy

@TargetApi(Build.VERSION_CODES.FROYO)

publicstaticFile getExternalCacheDir(Context context) {

File dir;

//        if (!VersionUtils.hasDonut()) {

if(!VersionUtils.hasFroyo()) {

dir =newFile(Environment.getExternalStorageDirectory().getPath()

+"/Android/data/"+ context.getPackageName() +"/cache/");

if(!dir.exists() && !dir.mkdirs())

dir =null;

}else{

dir = context.getExternalCacheDir();

}

returndir;

}

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 先Activity的抽象类 BaseActivity [java]view plaincopy /** *Acti...
    Zaker2Magic阅读 4,615评论 0 0
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,884评论 0 17
  • 茫茫人海,有几个人牵挂着你的悲喜;大千世界,有几颗心舍不得你的离去。人走茶凉,也许你只是一个名字;时过境迁,也许情...
    仼者阅读 2,953评论 4 1
  • D25/100 用了几个月的秀米,发现对比了那么多编辑器,还是更喜欢秀米。最近有好几个人问我秀米怎么用,分享一下基...
    米米心臻阅读 146,636评论 18 79
  • 使用注解的方式注入bean Spring能够从classPath下自动扫描,实例化具有特定注解的类,Spring提...
    石器时代小古董阅读 7,528评论 0 0

友情链接更多精彩内容