Используете устаревшие функции в старых версиях API?

Фон: я делаю свое приложение с минимальным уровнем API 17.

Я искал способы получить размер файловой системы и увидел это:

http://developer.android.com/reference/android/os/StatFs.html

Однако многие новые функции доступны только в API уровня 18 и выше, а более старые версии теперь устарели.

Как правильно использовать что-то вроде http://developer.android.com/reference/android/os/Build.VERSION.html, чтобы сказать: «Если уровень API пользователя 17, используйте устаревшую версию этих функций, но если уровень API 18+, используйте более новые версии этих функций. "? Нужно ли мне как-то использовать аннотацию об устаревании?


person KaliMa    schedule 09.04.2016    source источник
comment
Гугли немного. Вы увидите, что это рекомендовано Google, с примерами и многим другим. Есть даже аннотация для подавления устаревания lint.   -  person 323go    schedule 09.04.2016
comment
Я сделал Google, но ничего не видел. Для чего мне гуглить?   -  person KaliMa    schedule 09.04.2016


Ответы (1)


Вы должны использовать устаревший метод, если версия ОС ниже 18, или использовать более новый метод, если версия ОС выше или равна 18.

Например:

@SuppressWarnings("deprecation")
private long getAvailableBlocks(StatFs statFs) {
    long availableBlocks;

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
        availableBlocks = statFs.getAvailableBlocksLong();
    } else {
        availableBlocks = statFs.getAvailableBlocks();
    }

    return availableBlocks;
}
person Mattia Maestrini    schedule 09.04.2016