@TargetApi
这个注解的意思就是告诉Android的Lint工具,下面的类或者方法是与一个指定的API相对应的,忽略manifeset文件里面的minSdk的设置。
假如你不加这个注解的话,当你在用一个较新的api方法时候,如果manifest文件中定义的minSdk比这个方法对应的版本要低,Lint检测的时候会报错误或者警告。
注意这个注解,并不意味着在低版本的sdk中就可以使用高版本的api了,在代码中最好还要加上判断,如:
@TargetApi(11) static public<T> void executeAsyncTask(AsyncTask<T,?,?> task, T...params){ if(Build.VERSION.SDK_INT >=Build.VERSION_CODES.HONEYCOMB){ task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,params); }else{ task.execute(params); } }
@SuppressLint('NewApi')
这个注解和上面的差不多,只不过唯一区别是targetApi确定了要忽略的目标api的版本,比如11,假如manifest文件中的minsdk更改过之后这个值可能也要跟着改变,但是@SuppressLint('NewApi')只要设置过之后,就等于在任意api版本都忽略了。
具体Lint的使用和说明,网上有很好的介绍了,我就不重复了: