Android @Suppress ошибки vs @TargetApi

Иногда я делаю код для определенных версий Android, который может запускать мое приложение. Eclipse с новейшими инструментами Android все еще замечает, что мой документ Manifest позволяет использовать более низкие версии Android и поэтому решает, что в моем коде есть ошибки.

Решением этого является добавление тега @Suppress выше метода, чтобы он не сообщал об ошибке, или другое предложение состоит в том, чтобы добавить тег @TargetApi выше функции

Я не понимаю различия или последствия

    @TargetApi(NN) говорит: «Эй, Android! Да, я знаю, что я использую что-то более новое, чем то, что разрешено для моего android:minSdkVersion . Все в порядке, потому что я уверен, что использую Build (или что-то еще) Так что новый код работает только на более новых устройствах. Пожалуйста, притворитесь, что моя minSdkVersion является NN для целей этого (класс | метод) ».

    @SuppressLint , чтобы решить ту же ошибку, говорит: «Эй, Android! Да, я знаю, что я использую что-то более новое, чем то, что разрешено в моем android:minSdkVersion . Закройте жалобы».

    Следовательно, учитывая выбор @TargetApi(NN) или @SuppressLint , перейдите к @TargetApi(NN) . Там, если вы начнете использовать что-то более новое, чем NN и, следовательно, ваша существующая логика проверки версий может быть недостаточной – вы снова будете кричать.