Comment Annuler une demande de Rénovation
J'ai faites défiler l'officiel la documentation de Rénovation et a décidé de mettre en place quelque chose comme ça dans mon projet, de sorte que l'utilisateur a toujours la possibilité d'annuler le fichier à télécharger et tout devrait fonctionner correctement. Mettre en œuvre des méthodes appropriées, d'où l'échec de prescrire les suivantes:
service.upload1(file1, str, stringMap, new Callback<ImageUpload>() {
@Override
public void success(final ImageUpload imageUpload, Response response) {
mRecyclerView.post(new Runnable() {
@Override
public void run() {
...
});
}
@Override
public void failure(RetrofitError error) {
if (error.isCanceled()) {
Log.e(TAG, "request is cancelled");
} else {
Log.e(TAG, "other larger issue, i.e. no network connection?");
}
}
Mais souligne en rouge isCanceled dans l'échec de la méthode. Je ne comprends pas quel est le problème, parce que cette méthode, nous avons d'abord proposé de classe Appel(peut-être parce jure à moi au lieu de l'Appel de classe est RetrofitError?) Merci de me dire comment résoudre.
J'utilise rénovation 1.9, et je n'ai pas besoin d'aller sur la rénovation 2.
êtes-vous à l'aide de rénovation 1 ou la rénovation de 2?. Je pense que isCanceled est introduit dans Retrofit2
lire attentivement le document.........isCancelled() la méthode est de retrofit2.Appel classe non RetorfitError de la classe
OriginalL'auteur Morozov | 2016-09-20
Vous devez vous connecter pour publier un commentaire.
error.isCanceled()
ne semble pas être là pour le Rétrofit d'aussi loin que je me souvienne. Si vous voulez être en mesure d'annuler une demande, vous pouvez soit changer de Rénovation 2 où ils ont uncall.cancel()
méthode ou dans la version en cours de Rénovation, vous pouvez l'étendue de laCallback
classe pour créer votre propre classeCancellableCallback
comme ceci:Modifier
Vous pouvez alors l'utiliser comme ceci:
Et puis l'annuler comme ceci:
ce qui s'est passé, si la demande de téléchargement d'une grande taille de fichier ? :/ si le fichier de continuer le téléchargement sans que l'utilisateur le sache ?
OriginalL'auteur Amit Tiwari
Vous pouvez Annuler la Demande comme:
et obtenir de rappel de l'Annuler comme:
Vous pouvez vérifier ici pour plus d'.
qu'est-ce que service ? ce type de classe est qui ?
est un retrofit2
Call
, nous avons l'habitude de l'utiliser commeservice.enqueue(new Callback<ResponseBody>() { ... }
OriginalL'auteur Pratik Butani AndroidDev
Vous devez utiliser Rénovation 2, et le changement de l'interface de signature de la méthode de retour d'un
Call
objet. Pour faire une demande, vous appelezenqueue
méthode. Après cela, vous pouvez appelercancel
méthode pour annuler la demande.OriginalL'auteur Marius Kaunietis
Vous devez passer à retrofit2 , et puis écrire quelque chose comme cela -
OriginalL'auteur Devansh Kumar