在低版本的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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 先Activity的抽象類 BaseActivity [java]view plaincopy /** *Acti...
    Zaker2Magic閱讀 999評論 0 0
  • ¥開啟¥ 【iAPP實現進入界面執行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,523評論 0 17
  • 茫茫人海,有幾個人牽掛著你的悲喜;大千世界,有幾顆心舍不得你的離去。人走茶涼,也許你只是一個名字;時過境遷,也許情...
    仼者閱讀 396評論 4 1
  • D25/100 用了幾個月的秀米,發現對比了那么多編輯器,還是更喜歡秀米。最近有好幾個人問我秀米怎么用,分享一下基...
    米米心臻閱讀 145,890評論 18 79
  • 使用注解的方式注入bean Spring能夠從classPath下自動掃描,實例化具有特定注解的類,Spring提...
    石器時代小古董閱讀 2,685評論 0 0