Sto usando @TargetApi (23) nella mia app.L'annotazione @TargetApi è solo per un livello Api o superiore?
@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) {
}
ma non riesco a capire una cosa: @TargetApi (23) di media "solo per il livello Api 23" o "per il livello Api 23 e sopra" l'annotazione? Ad esempio se il livello Api del dispositivo 24 è chiamato metodo onAttach (contesto contestuale)?
'@TargetApi (23)' significa "Io, come autore di questo metodo, assicurerò che non venga mai chiamato a livello API 24 o superiore. Tuttavia, l'ho provato e penso che funzioni correttamente per il livello API 23 e sotto, anche se il mio 'minSdkVersion' è sotto 23." L'uso di '@ TargetApi' non ha alcun effetto su Android stesso e sul fatto che venga chiamato o meno il metodo. Si limita a dire agli strumenti di costruzione di smettere di lamentarsi dei problemi che ritieni di gestire correttamente. – CommonsWare