2017-09-21 5 views
1

Dans mon application, j'ai deux boutons avec edittext dans recyclerview comme ci-dessous.retrofit: annulation de la demande actuelle

enter image description here

ce que je fais est chaque utilisateur clique de temps sur plus ou moins le bouton, je commence le service. si l'utilisateur clique bouton plus de 100 fois, puis il appelle 100 fois

startService(intent) 

J'appelle api par retrofit2 par call.enqueue.

Je veux juste limiter les appels API. Comment puis je faire ça?

Modifier

Je veux que le résultat derniers appels. Par conséquent, je veux juste annuler toutes les autres demandes qui sont en attente, et exécuter seulement le dernier api appel.

+0

Vous pouvez supprimer le onclicklistener sur le bouton lorsque le service démarre, et le définir à nouveau une fois qu'il est terminé, vous aurez besoin de récepteur de diffusion pour vérifier quand le service se termine. –

+0

il n'est pas clair quel est le problème pour «restreindre les appels api». Déterminez simplement les conditions sur lesquelles vous souhaitez restreindre et implémentez l'instruction 'if'. –

+0

@AbhirojPanwar Ce n'est pas une bonne idée d'arrêter l'utilisateur pour ajouter des éléments –

Répondre

0

Par conséquent, j'ai obtenu une solution temporarry en donnant le numéro d'appel api. Chaque fois que j'appelle des services j'attribue une variable 'ApiNumber' et en retour j'ai aussi le même numéro. ApiNumber est le nombre d'appels, il augmente au fur et à mesure que l'appel api augmente. Je n'accepte que la dernière réponse d'appel.

Mais, j'ai encore besoin d'annuler l'appel api.