@SuppressLint("NewApi")和@TargetApi()的區別


在Android代碼中,我們有時會使用比我們在AndroidManifest中設置的android:minSdkVersion版本更高的方法,此時編譯器會提示警告,

解決方法是在方法上加上@SuppressLint("NewApi")或者@TargetApi()。

那他們之間有什么區別呢,很簡單,

@SuppressLint("NewApi")屏蔽一切新api中才能使用的方法報的android lint錯誤

@TargetApi() 只屏蔽某一新api中才能使用的方法報的android lint錯誤

舉個例子,某個方法中使用了api9新加入的方法,而項目設置的android:minSdkVersion=8,此時在方法上加@SuppressLint("NewApi")

和@TargetApi(Build.VERSION_CODES.GINGERBREAD)都可以,以上是通用的情況。

而當你在此方法中又引用了一個api11才加入的方法時,@TargetApi(Build.VERSION_CODES.GINGERBREAD)注解的方法又報錯了,而

@SuppressLint("NewApi")不會報錯,這就是區別。

 

當然,不管你使用了哪個注解,作用僅僅是屏蔽android lint錯誤,所以在方法中還要判斷版本做不同的操作,比如:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {  
            //  
} else {// Pre GINGERBREAD  
            //  
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM