android @TargetApi注释是什么意思

时间:2018-11-07 21:32:20

标签: android annotations

TargetApi是否意味着必须在特定版本下调用代码,或者 必须被称为大于或等于特定版本?例如

TargetApi(23)意味着用于(23及以下)或(23及以上)?

2 个答案:

答案 0 :(得分:5)

@TargetApi(23)

表示带注释的元素只能在给定的API级别 23或更高版本上调用。

@TargetApi注释仅由 Lint 使用,并且在运行时没有结果。 如果我们在不检查TaregetApi和Lint的情况下使用更高的api,则在编译时不会提示您,并且代码在运行时可能会崩溃。

编辑:

@RequiresApi

对此方法添加注释时,随时,您随时都会调用该方法,并且会收到红色警告,表明此调用要求的api版本高于您的最低api版本。

@TargetApi

它抑制了在您的方法中调用新api的警告,但是当您从其他地方调用此方法时,根本没有棉绒警告。

@RequiresApi较新且更严格,这两个注释也是lint helper,为避免崩溃运行时间,您应该自己检查api级别。

答案 1 :(得分:2)

目标Api 23意味着带注释的方法应仅在api 23+设备上运行。您应该将其与IF检查设备的api级别一起使用。如果您的应用的最低API级别低于23,请考虑为较旧的设备提供一种方法。