Suche…


Wie veraltete API behandeln

Es ist unwahrscheinlich, dass ein Entwickler während eines Entwicklungsprozesses auf eine veraltete API stößt. Ein veraltetes Programmelement kann von Programmierern nicht verwendet werden, normalerweise, weil es gefährlich ist oder weil es eine bessere Alternative gibt. Compiler und Analysatoren (wie LINT ) warnen, wenn ein nicht mehr unterstütztes Programmelement verwendet oder in nicht veraltetem Code überschrieben wird.

Eine veraltete API wird in Android Studio normalerweise mit einem Strikeout identifiziert. Im folgenden Beispiel ist die Methode .getColor(int id) veraltet:

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

Wenn möglich, sollten Entwickler alternative APIs und Elemente verwenden. Sie können die Abwärtskompatibilität einer Bibliothek überprüfen, indem Sie die Android-Dokumentation für die Bibliothek aufrufen und den Abschnitt "In API-Ebene x" prüfen:

getColor wurde in API Level 1 hinzugefügt und in API Level 23 nicht mehr unterstützt

Falls die zu verwendende API nicht mit der von Ihren Benutzern verwendeten Android-Version kompatibel ist, sollten Sie vor der Verwendung dieser Bibliothek die API-Ebene des Benutzers überprüfen. Zum Beispiel:

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

Durch diese Methode wird sichergestellt, dass Ihre App mit neuen Android-Versionen sowie vorhandenen Versionen kompatibel bleibt.

Einfachere Alternative: Verwenden Sie die Support Library

Wenn Support Libraries verwendet werden, gibt es oft statische Hilfsmethoden, um dieselbe Aufgabe mit weniger Clientcode auszuführen. Anstelle des if / else-Blocks oben verwenden Sie einfach:

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

Die meisten veralteten Methoden mit neueren Methoden mit einer anderen Signatur und vielen neuen Funktionen, die bei älteren Versionen möglicherweise nicht verwendet werden konnten, verfügen über Kompatibilitätshilfemethoden wie diese. Um andere zu finden, durchsuchen Sie die Support-Bibliothek nach Klassen wie ContextCompat , ViewCompat usw.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow