Ich verwende @TargetApi (23) in meiner App. @TargetApi (23) Anmerkung des mean "nur für Api Level 23" oder "für Api Level 23 und höher":Ist @TargetApi Annotation nur für eine API-Ebene oder höher?
@TargetApi(23)
@Override
public void onAttach(Context context) {
super.onAttach(context);
onAttachToContext(context);
}
@SuppressWarnings("deprecation")
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
onAttachToContext(activity);
}
}
protected void onAttachToContext(Context context) {
}
Aber ich kann nicht etwas verstehen? Zum Beispiel, wenn API-Ebene von Gerät 24, ist OnAttach (Kontext Kontext) -Methode aufgerufen?
'@TargetApi (23)' bedeutet "Ich, als der Autor dieser Methode, wird sicherstellen, dass es nie auf API Level 24 oder höher aufgerufen wird. Ich habe es jedoch getestet und fühle, dass es richtig für API Level funktioniert 23 und darunter, obwohl meine "minSdkVersion" unter 23 ist. " Ihre Verwendung von '@ TargetApi' hat keine Auswirkungen auf Android selbst und darauf, ob die Methode aufgerufen wird oder nicht. Es teilt den Build-Tools lediglich mit, dass sie sich nicht mehr über Probleme beschweren sollten, die Sie korrekt behandeln. – CommonsWare