2010-12-27 3 views
3

Actuellement, j'ai une vue qui a une classe AsyncTask utilisée pour le décodage. Mais même si AsyncTask.cancel() n'est pas appelé dans ma classe, onCancelled() a été appelé, ce qui a entraîné un processus anormal dans mon application.AsyncTask quand onCancelled() est appelé en plus d'appeler AsyncTask.cancel?

Je voudrais demander si ce sont des cas qui AsyncTask.onCancelled() sera appelé en plus lorsque vous appelez la AsyncTask.cancel()

Toute aide serait appréciée. Merci beaucoup à l'avance

+0

Même question - je reçois les journaux comme ceci: OnPreExecute() onCancelled() doInBackground() onPostExecute() – Graeme

Répondre

0

Je pense que l'appel de la méthode Cancel va déclencher l'événement onCancelled (?), Où vous pouvez écrire du code pour annuler votre tâche avec élégance.

+1

Oui lors de l'appel d'annulation() appellera onCancelled() mais ce que je voudrais savoir est que Y at-il d'autres instances que onCancelled sera appelé, par exemple lorsque l'application s'est écrasée, etc. – chippy

+0

Avez-vous lu la documentation? Il indique clairement quand onCancelled est invoqué: http://developer.android.com/reference/android/os/AsyncTask.html#onCancelled() – psychotik

+0

oui je l'ai fait. merci – chippy

0

Hmm ...

affichage .cancel() avant la AsyncTask exécution signifie une annulation qui se passe réellement au cours de l'exécution ... ce qui est évidemment un comportement incorrect.

J'ai trouvé cela en plaçant tous les appels à .cancel(true) dans mon code dans une seule méthode appelée "cancel()" que je pourrais ensuite mettre en marche et sortir pour trouver le morceau de code incriminé.

Questions connexes