TargetApi是否意味着必须在特定版本下调用代码,或者 必须被称为大于或等于特定版本?例如
TargetApi(23)意味着用于(23及以下)或(23及以上)?
答案 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,请考虑为较旧的设备提供一种方法。