Zoeken…


Hoe om te gaan met verouderde API

Het is onwaarschijnlijk dat een ontwikkelaar een verouderde API niet tegenkomt tijdens een ontwikkelingsproces. Een verouderd programma-element is een element dat programmeurs ontmoedigen om te gebruiken, meestal omdat het gevaarlijk is, of omdat er een beter alternatief bestaat. Compilers en analyzers (zoals LINT ) waarschuwen wanneer een verouderd programma-element wordt gebruikt of overschreven in niet-verouderde code.

Een verouderde API wordt meestal geïdentificeerd in Android Studio met behulp van een strikeout. In het onderstaande voorbeeld is de methode .getColor(int id) verouderd:

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

Indien mogelijk worden ontwikkelaars aangemoedigd om alternatieve API's en elementen te gebruiken. Het is mogelijk om de achterwaartse compatibiliteit van een bibliotheek te controleren door de Android-documentatie voor de bibliotheek te bezoeken en de sectie "Toegevoegd in API-niveau x" te controleren:

getColor is toegevoegd in API niveau 1 en verouderd in API niveau 23

In het geval dat de API die u moet gebruiken niet compatibel is met de Android-versie die uw gebruikers gebruiken, moet u het API-niveau van de gebruiker controleren voordat u die bibliotheek gebruikt. Bijvoorbeeld:

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

Door deze methode te gebruiken, blijft uw app compatibel met zowel nieuwe Android-versies als bestaande versies.

Gemakkelijker alternatief: gebruik de ondersteuningsbibliotheek

Als de ondersteuningsbibliotheken worden gebruikt, zijn er vaak statische hulpmethoden om dezelfde taak met minder clientcode uit te voeren. Gebruik in plaats van het if / else-blok hierboven:

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

De meeste verouderde methoden met nieuwere methoden met een andere handtekening en veel nieuwe functies die mogelijk niet in oudere versies konden worden gebruikt, hebben compatibiliteitshulpmethoden zoals deze. Voor anderen, blader door de support bibliotheek voor de klassen zoals vinden ContextCompat , ViewCompat , etc.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow