Autore Topic: Dialog non viene visualizzata  (Letto 459 volte)

Offline MasterChief

  • Utente junior
  • **
  • Post: 83
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    OnePlus X
  • Sistema operativo:
    windows 10
Dialog non viene visualizzata
« il: 08 Marzo 2015, 13:42:44 CET »
0
Ciao a tutti ragazzi, ho un problema con una ProgressDialog. Nel mio codice visualizzo una ProgressDialog che dice all'utente che sta caricando dei dati in questo modo:
Codice (Java): [Seleziona]
        programDialog = ProgressDialog.show(SendingProgram.this, "Caricamento...", "Caricamento del programma in corso...", true);
        programDialog.setCancelable(false);//impedisco la cancellazione così non si interromperà l'invio del programma
        new SendProgramTask().execute();//avvio il task che invia il programma su seriale
Tutto questo codice funziona a meraviglia, il programDialog viene visualizzata e il SendProgramTask().execute() fa il suo dovere meglio di quanto mi aspettassi. Il SendProgramTask è un AsyncTask che invia dei dati su porta seriale. All'esecuzione del metodo onPostExecute() esegue questo codice
Codice (Java): [Seleziona]
 protected void onPostExecute(Void result) {//mostro i risultati dell'invio del programma su seriale
            programDialog.dismiss();//chiudo anche il 1° dialog(il 2° si sovrappone al primo)
            vuMeterDialog = ProgressDialog.show(SendingProgram.this, "Caricamento Completato", "Caricamento interfaccia elettrodi..", true);
            vuMeterDialog.setCancelable(false);//impedisco la cancellazione così non si interromperà l'invio del programma
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(4500);//aspetto 4.5s (così l'utente legge il testo visualizzato)
                        Intent sensori = new Intent(getBaseContext(), SensorActivity.class);
                        startActivity(sensori);//avvio l'activity di gestione delle 4 schede (VuMeter)
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }).start();
            vuMeterDialog.dismiss();//chiudo il 2° dialog
            cancel(true);//uccido l'AsyncTask corrente dato che non ne ho più bisogno
        }

Premetto che è la prima volta che lavoro con gli AsyncTask e magari non conosco tutto quanto, ma la vuMeterDialog non viene mai visualizzata sullo schermo, però dopo 4.5s l'intent "sensori" si avvia perfettamente e il tutto funziona. Sul monitor mi viene mostrato un riquadro nero con dentro scritto il nome dell'app che sta girando al posto della vuMeterDialog. Ho provato varie soluzioni, ma non ne vengo fuori purtroppo.
Chi sa spiegarmi come mai non viene mostrata e come rimediare?
Grazie mille per l'attenzione in anticipo.