blubsy Posté(e) 26 juin 2011 Share Posté(e) 26 juin 2011 Bonjour, j'utilise des Thread pour lancer des ProgressDialog. Hors les Thread sont lancer automatiquement lorsqu'un Sms est reçut. Dans le principe tous ce passe bien. Mais lorsque 2 (voir pus) de message arrive en même temps et donc plusieurs ProgressDialog sont lancer quasi en même temps, seul le dernier lancer est fermé. Il reste donc un ProgressDialog qui reste ouvert. Comment puis je vérifié si le ProgressDialog est fermé ou donné un identifiant pour ouvrir et fermé les ProgressDialog ? Merci par avance pour votre aide. public void launchWait(String action) { progressDialog = ProgressDialog.show(this, "Patientez...", $messg, true, false); new Thread(new Runnable() { @Override public void run() { // Action //... // Fermeture du ProgressDialog progressDialog.dismiss(); }).start(); } Lien vers le commentaire Partager sur d’autres sites More sharing options...
vpsmahery Posté(e) 26 juin 2011 Share Posté(e) 26 juin 2011 Vu comment tu as déclaré ProcessDialog, c'est le même objet pour chaque Thread fille. Elles vont essayer de fermer le même processDialog. thread1.start() -> processDialog = dialog1 thread2.start() -> processDialog= dialog2 thread1.stop() -> dialog2.dismiss() thread2.stop() -> dialog2.dismiss() l'adresse de dialog1 a été écrasée par dialog2, mais dialog1 est toujours en vie dans la mémoire, en train d'afficher. Peut etre mieux déclarer un nouveau process dialog dans ton run(). public void run(){ ProcessDialog pd = ProcessDialoge.show() //il existe que dans le contexte du thread actuel ... pd.dismisss(); } Lien vers le commentaire Partager sur d’autres sites More sharing options...
blubsy Posté(e) 26 juin 2011 Auteur Share Posté(e) 26 juin 2011 Genial merci je vais testé tous ça. Bonne soirée Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.