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