Android
Construyendo aplicaciones compatibles hacia atrás
Buscar..
Cómo manejar API en desuso
Es poco probable que un desarrollador no se encuentre con una API en desuso durante un proceso de desarrollo. Un elemento de programa desaprobado es uno que los programadores no deben utilizar, generalmente porque es peligroso o porque existe una mejor alternativa. Los compiladores y analizadores (como LINT ) advierten cuando un elemento de programa en desuso se utiliza o se anula en un código no en desuso.
Una API en desuso generalmente se identifica en Android Studio utilizando un tachado. En el siguiente ejemplo, el método .getColor(int id)
está en desuso:
getResources().getColor(R.color.colorAccent));
Si es posible, se recomienda a los desarrolladores que utilicen API y elementos alternativos. Es posible verificar la compatibilidad hacia atrás de una biblioteca visitando la documentación de Android para la biblioteca y verificando la sección "Agregado en el nivel de API x":
En el caso de que la API que necesita utilizar no sea compatible con la versión de Android que usan sus usuarios, debe verificar el nivel de API del usuario antes de usar esa biblioteca. Por ejemplo:
//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());
}
El uso de este método garantiza que su aplicación seguirá siendo compatible con las nuevas versiones de Android, así como con las versiones existentes.
Alternativa más fácil: usar la biblioteca de soporte
Si se utilizan las bibliotecas de soporte, a menudo hay métodos auxiliares estáticos para realizar la misma tarea con menos código de cliente. En lugar del bloque if / else de arriba, solo usa:
final int color = android.support.v4.content.ContextCompat
.getColor(context, R.color.colorPrimary);
La mayoría de los métodos en desuso que tienen métodos más nuevos con una firma diferente y muchas características nuevas que pueden no haberse utilizado en versiones anteriores tienen métodos de compatibilidad de este tipo. Para encontrar otros, navegue por la biblioteca de soporte para clases como ContextCompat
, ViewCompat
, etc.