ahm*_*a53 2 android annotations
TargetApi是否意味着必须在特定版本下调用代码,或者必须在大于或等于特定版本的情况下调用代码?例如
TargetApi(23)表示用于(23及以下)或(23及以上)?
@TargetApi(23)
Run Code Online (Sandbox Code Playgroud)
表示仅应在给定的API级别23或更高级别上调用带注释的元素。
@TargetApi注释仅由Lint使用,并且在运行时没有结果。如果我们在不检查TaregetApi和Lint的情况下使用更高的api,则在编译时不会提示我们,并且代码在运行时可能会崩溃。
编辑:
@RequiresApi
Run Code Online (Sandbox Code Playgroud)
用此方法注释方法后,无论何时调用该方法,都会收到一个红色的警告,表明此调用要求的api版本高于最低api版本。
@TargetApi
Run Code Online (Sandbox Code Playgroud)
它抑制了在您的方法中调用新api的警告,但是当您从其他地方调用此方法时,根本没有棉绒警告。
@RequiresApi 较新且更严格,这两个注释也是lint助手,为避免崩溃运行时间,您应该自己检查api级别。
Target Api 23 意味着带注释的方法只能在 api 23+ 设备上运行。您应该将其与 IF 检查设备的 api 级别一起使用。如果您的应用程序的最低 API 级别低于 23,请考虑为旧设备提供方法。
| 归档时间: |
|
| 查看次数: |
816 次 |
| 最近记录: |