2011-09-06 5 views
0

Dans le code suivant:Android ProgressDialog ne montre pas

Log.v("dialog", "dialogshow"); 
ProgressDialog dialog = ProgressDialog.show(UBActivity.this, "", "Loading calendar, please wait...",  true); 

boolean res; 
try { 
    res = new Utils().new DownloadCalendarTask().execute().get(); 
} catch (InterruptedException e) { 
    Log.v("downloadcalendar", "interruptedexecution : " + e.getLocalizedMessage()); 
    res = false; 
} catch (ExecutionException e) { 
    Log.v("downloadcalendar", "executionexception : " + e.getLocalizedMessage()); 
    res = false; 
} 
Log.v("dialog", "dialogdismiss"); 
dialog.dismiss(); 

Selon logcat il y a 8 secondes différence entre dialogshow et dialogdismiss montrant dans le journal, mais je ne vois pas l'ProgressDialog apparaissent du tout. L'action d'arrière-plan ne se produit pas dans le thread de l'interface utilisateur (c'est une asyncTask), donc ce ne devrait pas être le problème?

Un grand merci u

+0

À quoi ressemble le code de votre AsyncTask <>? Travaillez-vous beaucoup dans 'onPreExecute'? –

Répondre

3

Essayez de mettre votre ProgressDialog dans votre AsyncTask: Créer le ProgressDialog et l'afficher dans PreExecute. Effectuez votre téléchargement en arrière-plan et supprimez ProgressDialog dans PostExecute.

1

En AsyncTask Il y a trois méthode ....

OnPreExecute vous démarrez votre ProgressDialog et votre tâche est en cours d'exécution en arrière-plan faire .. Après avoir terminé le faire en arrière-plan Méthodes les méthode onPostExecute appelle lui-même et licencient votre méthode de dialogue onPostExecute ....

+0

Nice copier/coller de ma réponse: D hehe, je plaisante :) –

+0

Non je ne copie jamais la pâte je sais très bien Asynctask et comment ça marche ........... et quand j'assiste ma réponse Tu réponds premier et je ne vous montre pas répondu et j'ajoute aussi tâche aasync dans mon application il y avait télécharger des images à partir d'Internet en arrière-plan ,,,,,,,,, La plupart de Java, la technologie .Net est utilisée ce fondamental pour Background Process ,,, OK .......... –

+2

Chill mec ... Je suis sûr que vous le savez. Mais je viens de poster ma réponse, et 5 minutes après que vous lui ayez donné une réponse presque identique. Pas que cela compte, c'est pourquoi j'ai ajouté un smiley et le "hehe". Ne voulait pas dire gâcher votre journée. –

0

Si vous ne voyez pas le ProgressDialog, je pense qu'il est à cause de le Context. Êtes-vous sûr UBActivity.this est le bon Activity?

J'ai eu exactement le même problème et l'ai résolu en passant le Context à mon constructeur de classe ASync.