2010-09-02 6 views
0

J'ai un problème vraiment étrange, que je suis incapable de déboguer jusqu'à présent ... Ce qui est ... mon application a besoin de télécharger quelque chose pour travailler. Donc, au début de la méthode onCreate(), je vérifie si quelque chose est déjà téléchargé. Sinon, j'ouvre une boîte de dialogue demandant à l'utilisateur de le télécharger.Afficher la boîte de dialogue après l'autre Boîte de dialogue: HANGS

if (!isInstalled) { 
      showDialog(DIALOG_INSTALL); 
     } else { 
      start(); 
     } 

Lorsque la méthode start() exécute une autre action. Maintenant que showDialog appelle ceci:

builder = new AlertDialog.Builder(MyApp.this); 
     builder.setMessage("Would you like to install...") 
     .setCancelable(false) 
     .setPositiveButton("Install", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       dialog.dismiss(); 
       aManager.install(MyApp.this); 
      } 
     }); 
     dialog = builder.create(); 
     return dialog; 

Ma boîte de dialogue apparaît et je suis en cliquant, si aManager.install() est appelée. Je passe le contexte parce que aManager.install() affiche un ProgressDialog pour montrer la progression du téléchargement et génère un nouveau thread dans lequel tout est téléchargé. Donc, évidemment, avant de créer ma boîte de dialogue, je crée un gestionnaire pour recevoir la réponse de aManager.install(). Et la réponse PEUT varier, car par exemple la connexion internet n'est pas disponible (Exception levée et interceptée et écouteur appelé avec un code différent). Maintenant, quand cela arrive (Exception) Je voudrais appeler une autre boîte de dialogue en disant "quelque chose s'est mal passé, voulez-vous réessayer?" ... donc un autre appel à showDialog (DIALOG_REINSTALL) (cette fois avec un autre code) . Thing is ... le showDialog() est appelé (je peux le vérifier en enregistrant) mais les dialogues n'apparaissent pas. Au lieu de cela, mon application JUST HANGS!?!?!?

Est-ce que quelqu'un a une idée pourquoi ça fait ça ???? Aucune exception soulevée, absolument rien de logcat, je ne peux pas dire où il est suspendu ... il suffit de voir que la méthode est appelée et la boîte de dialogue doit être affichée ...

Merci beaucoup!

Répondre

1

On dirait que vous avez une impasse. Je voudrais mettre le code de téléchargement sur le fil séparé, par exemple. utilisez AsyncTask. En task.onPreExecute() vous pouvez rejeter le 1er dialogue et votre dialogue de progression pop-up que vous mettez à jour en réécrivant task.onProgressUpdate()

0

Utilisation .show() au lieu de .create().

Questions connexes