означает, что TargetApi означает, что код должен вызываться с определенной версией или должен называться с более высокой или равной определенной версией?
TargetApi (23) означает, что использовать для (23 и ниже) или (23 и выше)?
@TargetApi(23)
Обозначает, что аннотированный элемент должен вызываться только на данном уровне API 23 или выше.
Аннотация @TargetApi
используется только Lint и не имеет результатов во время выполнения. Если мы используем более высокий api без проверки TaregetApi и Lint, нам не будет предложено во время компиляции, и наш код может потерпеть крах при запуске.
Отредактировано:
@RequiresApi
Когда метод аннотируется этим, каждый раз, когда вы вызываете этот метод, вы получаете приятное красное предупреждение о том, что для этого вызова требуется версия API, которая выше, чем ваша версия Min API.
@TargetApi
он подавляет предупреждения о вызове нового apis в вашем методе, но когда вы вызываете этот метод откуда-то еще, предупреждение lint вообще не появляется.
@RequiresApi
является более новым и более строгим, эти две аннотации также являются вспомогательными, чтобы избежать аварийного запуска, вы должны проверить уровень API самостоятельно.
Target Api 23 означает, что аннотированный метод должен работать только на устройствах api 23+. Вы должны использовать его с проверкой IF для уровня API устройства. Если минимальный уровень API вашего приложения ниже 23, попробуйте предоставить метод для старых устройств.