Android @TargetApi返回

时间:2017-11-02 14:10:05

标签: android annotations

我正在使用boi返回类型的方法为api 19,而我的应用程序支持min sdk 15,该方法将返回什么,api小于19?

@TargetApi(19)
    public static boolean isFeatureXEnabled(Context context) {

    some logic

    return true/false;
}

在调用API< 19时我会得到什么?

classInstance.isFeatureXEnabled(上下文);

2 个答案:

答案 0 :(得分:2)

让我们理解@TargetApi(19)

您使用的是最低SDK无法使用的功能

Compiler : you cannot use this feature , it is not supported by min sdk

You: i know what i am doing so hush , take this @TargetApi(19)

Compiler : so now it is your responsibility to check the API level and call this function accordingly
  

该方法返回的内容将使api小于19

如果minsdk不支持此函数内的代码,那么很可能是崩溃,否则你的逻辑计算结果

你可以做这样的事情

@TargetApi(19)
public static boolean isFeatureXEnabled(Context context) {

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
         some logic
         return true/false;
    }

    return false;
}

答案 1 :(得分:1)

<强> @TargetApi

  

表示Lint应将此类型视为定位给定的API级别,无论项目目标是什么 - https://developer.android.com/reference/android/annotation/TargetApi.html

这意味着它只是被Lint用来隐藏/禁止警告。它对返回值有影响。