D'attente pour les ASyncTask pour terminer ou variable à définir
Je suis en train de mettre une variable dans une activité à la suite de mon AsyncTask. J'ai lu que je ne peut pas retourner une variable et que je dois configurer la variable dans mon activité et ensuite le modifier dans la onPostExecute
méthode.
Mon problème est que après l'AsyncTask finis-je besoin pour utiliser cette variable. J'ai de la difficulté avec cela parce que toutes les solutions que j'ai essayé jusqu'à présent la cause de l'INTERFACE utilisateur à geler et puis aller à la non-réponse.
Ce que j'ai essayé jusqu'à présent:
while (!task.isCancelled()) {
//Wait...
}
Et
while (variable == null) {
//Wait ...
}
Est ce que je fais le meilleur moyen de passer une variable à partir de l'AsyncTask pour mon Activité? Si c'est le cas comment puis-je attendre la fin de la tâche dans l'activité sans verrouiller l'INTERFACE utilisateur?
AsyncTask
. Il devrait faire quelque chose quand c'est fait, probablement dans onPostExecute()
.Dans le
onPostExecute()
méthode, je suis l'évolution de la variable dans mon activité au résultat. Ce que j'essaie de faire est d'attendre jusqu'à ce que la variable est modifiée.Exactement, ne pas le faire. Le
AsyncTask
's onPostExecute()
lui-même devrait être de commencer la série d'événements que vous souhaitez voir se produire après que la tâche est terminée. Aucun autre code devrait être sur la base de cette tâche.OriginalL'auteur Dan | 2012-12-26
Vous devez vous connecter pour publier un commentaire.
Il suffit de mettre votre code que vous voulez exécuter après la Variable est modifiée dans une fonction et d'appeler cette fonction à partir de onPostExecute.
OriginalL'auteur Adnan Amjad
Si vous êtes dépendant à la suite d'une AsyncTask, vous pouvez le faire.
Le type du résultat est le type de retour dans votre doInBackground() la méthode. Mais alors votre thread principal va être en attente jusqu'à ce que la tâche est terminée.
Mais si vous faites cela vous permettra de bloquer le thread principal. Ce n'est pas recomendable.
adalPaRi, sauf si c'est un écran de démarrage?
Ou d'un cas de test.
OriginalL'auteur Shiva