Recherche…


Comment gérer les API obsolètes

Il est peu probable qu'un développeur ne rencontre pas une API obsolète au cours d'un processus de développement. Un élément de programme obsolète est un élément que les programmeurs sont déconseillés d'utiliser, généralement parce qu'il est dangereux ou parce qu'il existe une meilleure alternative. Les compilateurs et les analyseurs (comme LINT ) avertissent lorsqu'un élément de programme obsolète est utilisé ou remplacé dans un code non obsolète.

Une API obsolète est généralement identifiée dans Android Studio à l'aide d'un barré. Dans l'exemple ci-dessous, la méthode .getColor(int id) est obsolète:

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

Si possible, les développeurs sont encouragés à utiliser des API et des éléments alternatifs. Il est possible de vérifier la compatibilité ascendante d'une bibliothèque en visitant la documentation Android de la bibliothèque et en consultant la section "Ajouté au niveau de l'API x":

getColor a été ajouté au niveau 1 de l'API et obsolète au niveau 23 de l'API

Si l'API que vous devez utiliser n'est pas compatible avec la version d'Android utilisée par vos utilisateurs, vous devez vérifier le niveau d'API de l'utilisateur avant d'utiliser cette bibliothèque. Par exemple:

//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());
}

L'utilisation de cette méthode garantit la compatibilité de votre application avec les nouvelles versions d'Android et les versions existantes.

Alternative plus simple: utilisez la bibliothèque de support

Si les bibliothèques de support sont utilisées, il existe souvent des méthodes d'assistance statiques pour accomplir la même tâche avec moins de code client. Au lieu du bloc if / else ci-dessus, utilisez simplement:

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

La plupart des méthodes obsolètes qui ont des méthodes plus récentes avec une signature différente et de nombreuses nouvelles fonctionnalités qui n'ont peut-être pas pu être utilisées sur les anciennes versions ont des méthodes d'assistance de compatibilité comme celle-ci. Pour trouver d' autres, naviguer à travers la bibliothèque de soutien pour les classes comme ContextCompat , ViewCompat , etc.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow