Что такое аннотации @TargetApi для Android - PullRequest
0 голосов
/ 08 ноября 2018

означает ли TargetApi, что код должен вызываться под определенной версией или должна называться больше или равна конкретной версии? например

TargetApi (23) означает, что использовать для (23 и ниже) или (23 и выше)?

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018
@TargetApi(23)

Обозначает, что аннотированный элемент должен вызываться только на данном уровне API 23 или выше .

@TargetApi аннотация используется Lint only и не имеет результата во время выполнения. Если мы используем более высокий api без проверки TaregetApi и Lint, нам не будет предложено во время компиляции, и наш код может потерпеть крах при запуске.

Отредактировано:

@RequiresApi

Когда метод аннотируется этим, в любое время когда вы вызываете этот метод, вы получаете приятное красное предупреждение о том, что для этого вызова требуется версия API, которая выше, чем ваша версия min api.

@TargetApi

он подавляет предупреждения о вызове нового API в вашем методе, но когда вы вызываете этот метод откуда-то еще, предупреждение lint вообще не появляется.

@RequiresApi является более новым и более строгим, эти две аннотации также являются вспомогательными, чтобы избежать аварийного запуска, вы должны проверить уровень API самостоятельно.

0 голосов
/ 08 ноября 2018

Target Api 23 означает, что аннотированный метод должен работать только на устройствах api 23+. Вы должны использовать его с проверкой IF для уровня API устройства. Если минимальный уровень API вашего приложения ниже 23, рассмотрите возможность использования метода для старых устройств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...