Android Come gestire l'API deprecata

Esempio

È improbabile che uno sviluppatore non incontri un'API obsoleta durante un processo di sviluppo. Un elemento del programma deprecato è uno che i programmatori sono scoraggiati dall'usare, in genere perché è pericoloso o perché esiste un'alternativa migliore. I compilatori e gli analizzatori (come LINT ) avvisano quando un elemento del programma deprecato viene utilizzato o sovrascritto nel codice non deprecato.

Un'API obsoleta viene solitamente identificata in Android Studio mediante un strikeout. Nell'esempio seguente, il metodo .getColor(int id) è deprecato:

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

Se possibile, gli sviluppatori sono incoraggiati a utilizzare API ed elementi alternativi. È possibile verificare la compatibilità all'indietro di una libreria visitando la documentazione di Android per la libreria e controllando la sezione "Aggiunta in livello API x":

getColor è stato aggiunto al livello 1 dell'API e deprecato nel livello API 23

Nel caso in cui l'API che è necessario utilizzare non sia compatibile con la versione Android utilizzata dagli utenti, è necessario verificare il livello API dell'utente prima di utilizzare tale libreria. Per esempio:

//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'utilizzo di questo metodo garantisce che la tua app rimanga compatibile con le nuove versioni di Android e con le versioni esistenti.

Alternativa più semplice: utilizzare la libreria di supporto

Se vengono utilizzate le librerie di supporto, spesso esistono metodi di supporto statici per eseguire la stessa attività con meno codice client. Invece del blocco if / else, usa solo:

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

La maggior parte dei metodi deprecati che hanno metodi più nuovi con una firma diversa e molte nuove funzionalità che potrebbero non essere state in grado di essere utilizzate nelle versioni precedenti hanno metodi di supporto per la compatibilità come questo. Per trovare gli altri, sfogliare la libreria di supporto per classi come ContextCompat , ViewCompat , ecc.