Поиск…


Как обращаться с устаревшим API

Маловероятно, что разработчик не столкнется с устаревшим API в процессе разработки. Устаревший программный элемент - это тот, который программистам не рекомендуется использовать, как правило, потому, что это опасно, или потому, что существует лучшая альтернатива. Компиляторы и анализаторы (например, LINT ) предупреждают, когда устаревший программный элемент используется или переопределяется в устаревшем коде.

Устаревший API обычно идентифицируется в Android Studio с помощью аута. В приведенном ниже примере метод .getColor(int id) устарел:

getResources().getColor(R.color.colorAccent));

По возможности разработчикам рекомендуется использовать альтернативные API и элементы. Можно проверить обратную совместимость библиотеки, посетив документацию по Android для библиотеки и проверив раздел «Добавлен в уровень API x»:

getColor был добавлен в API уровня 1 и устарел на уровне API 23

В случае, если API, который вам нужен, несовместим с версией Android, которую используют ваши пользователи, перед использованием этой библиотеки вы должны проверить уровень API для пользователя. Например:

//Checks the API level of the running device
if (Build.VERSION.SDK_INT < 23) {
    //use for backwards compatibility with API levels below 23
    int color = getResources().getColor(R.color.colorPrimary);
} else {
    int color = getResources().getColor(R.color.colorPrimary, getActivity().getTheme());
}

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

Простая альтернатива: используйте библиотеку поддержки

Если используются библиотеки поддержки, часто есть статические вспомогательные методы для выполнения одной и той же задачи с меньшим количеством клиентского кода. Вместо блока if / else выше просто используйте:

final int color = android.support.v4.content.ContextCompat
    .getColor(context, R.color.colorPrimary);

Большинство устаревших методов, которые имеют более новые методы с другой подписью и многие новые функции, которые, возможно, не могли быть использованы в старых версиях, имеют вспомогательные вспомогательные методы. Чтобы найти других, просмотрите библиотеку поддержки для таких классов, как ContextCompat , ViewCompat и т. Д.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow