天天看點

我的Android進階之旅------>Android中高低API版本相容使用@TargetApi或者@SuppressLint("NewApi")

Android中高低API版本相容使用@TargetApi或者@SuppressLint("NewApi")

例如:AndroidManifest.xml中,我們配置了sdk版本的最低為9,目标sdk為19

當我們使用了大于sdk版本為9的API時候,編譯器就會提示警告。例如:

警告如下:

截圖如下截圖如下:

我的Android進階之旅------>Android中高低API版本相容使用@TargetApi或者@SuppressLint("NewApi")
我的Android進階之旅------>Android中高低API版本相容使用@TargetApi或者@SuppressLint("NewApi")

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

那他們之間有什麼差別呢,很簡單,

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

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

我的Android進階之旅------>Android中高低API版本相容使用@TargetApi或者@SuppressLint("NewApi")

使用@TargetApi(Build.VERSION_CODES.HONEYCOMB)方式解決

我的Android進階之旅------>Android中高低API版本相容使用@TargetApi或者@SuppressLint("NewApi")

使用@SuppressLint("NewApi")方式解決

我的Android進階之旅------>Android中高低API版本相容使用@TargetApi或者@SuppressLint("NewApi")

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

        ====================================================================================

  作者:歐陽鵬  歡迎轉載,與人分享是進步的源泉!

====================================================================================

我的Android進階之旅------>Android中高低API版本相容使用@TargetApi或者@SuppressLint("NewApi")

繼續閱讀