RequiresApi vs TargetApi android annotations
Quoi la différence entre RequiresApi
et TargetApi
?
Échantillon dans kotlin:
@RequiresApi(api = Build.VERSION_CODES.M)
@TargetApi(Build.VERSION_CODES.M)
class FingerprintHandlerM() : FingerprintManager.AuthenticationCallback()
REMARQUE: FingerprintManager.AuthenticationCallback
nécessite api M
NOTE 2: si je n'utilise pas TargetApi peluches échouer avec l'erreur class requires api level 23...
Vous devez vous connecter pour publier un commentaire.
@RequiresApi
- Indique que l'élément ne doit être appelée sur les API ou d'un niveau supérieur.@TargetApi
- Indique que la Charpie doit traiter ce type de ciblage d'une API de niveau, peu importe ce que le projet cible.Similaire à ce que Mike a dit, comme vous pouvez le voir dans la documentation:
Comme vous pouvez le voir ici, c'est en fait l'application de l'appelant afin de vérifier l'API qui a été utilisée lors de l'appel de cette méthode, au lieu de simplement la suppression de l'avertissement à partir de votre IDE/PELUCHES.
Vous pouvez comparer cela à la @Non null ou @Null annotations, ils imposent que l'appelant peut/ne peut pas envoyer de valeurs null dans la fonction.
De la Javadoc dans https://developer.android.com/reference/android/support/annotation/RequiresApi.html:
Je suppose qu'ils sont fonctionnellement équivalents, mais
@RequiresApi
semble être nouveau et a plus de chances d'être étendue pour inclure plus de fonctionnalités.Je vais d'abord supposer votre min version de l'api est inférieure à l'api, vous allez d'appeler, parce que ces sortes d'annotations aucun sens
Lorsqu'une méthode est annoté avec cela, quand vous appelez la méthode, de recevoir un joli rouge d'avertissement que cet appel nécessite la version de l'api qui est plus élevé que votre min version de l'api, mais il ne doit pas vous arrêter à partir de la compilation et de la construction de votre apk, il suffit de planter sur les versions antérieures d'android que j'ai testé.
Ce n'aide pas du tout, il supprimer les avertissements d'appel de la nouvelle api dans votre méthode, mais lorsque vous appelez cette méthode à partir de quelque part d'autre, il n'y a pas de peluches avertissement à tous, et vous pouvez toujours construire et d'installer votre apk seulement pour répondre à un crash lorsque cette méthode est appelée.
Deux d'entre eux sont pour la fonctionnalité de gestion ajouté à la nouvelle API android niveaux sans affecter les autres API niveaux.
RequiresApi
Ici il est dit que l'élément ne doit être appelée sur les API ou d'un niveau supérieur. L'élément ci-dessous le niveau API ne vais pas l'appeler.
TargetApi
Indique que la Charpie doit traiter ce type de ciblage d'une API de niveau, peu importe ce que le projet cible. Que signifiait pour l'API de niveau.
Ne sera pas appelé à d'autres API de niveau.