2010-02-09 23 views
11

questo pulsante viene visualizzato nella mia attività di avvio. Dopo averlo premuto, verrà avviata una nuova attività, ma ciò richiede un po 'di tempo per l'inizializzazione di quella nuova attività, alcuni dati vengono raccolti da Internet. Questo funziona a metà. Viene visualizzata la finestra di dialogo di avanzamento ma la ruota di avanzamento non gira.Finestra di dialogo di avanzamento all'avvio di una nuova attività

Qualcuno può dirmi perché succede?

Button b4 = (Button) findViewById(R.id.Button01); 
     b4.setOnClickListener(new View.OnClickListener() { 
      public void onClick (View view) {  
      final ProgressDialog pd = ProgressDialog.show(pak.this, 
         "", "Working..", true); 

      new Thread(new Runnable(){ 
      public void run(){ 
       Intent intent = new Intent(); 
       intent.setClassName("sxe.pak", "sxe.pak.List"); 
       startActivity(intent);    
       pd.dismiss(); 
       } 
      }).start(); 

      } 
    }); 

thx

risposta

8

Hai bisogno di mostrare i progressi dialogo proprio all'inizio della vostra seconda attività, non è il tuo primo. E devi fare il tuo lavoro di download dei dati in un AsyncTask.

Vedere la mia risposta a questa per ulteriori informazioni:

Android SplashScreen

+0

buona risposta, ma io preferirei un messaggio privato a AsyncTask fino a quando il filo non hanno bisogno di usare il thread dell'interfaccia utente. – pgsandstrom

+0

Ciao mbaird, grazie per la tua risposta. Sono consapevole della possibilità di utilizzare AsyncTask per il lavoro asincrono, ma nel mio caso non è utilizzabile (o non so come) perché voglio iniziare una nuova attività. L'avvio della finestra di dialogo di avanzamento all'inizio della seconda attività non è un'opzione, l'ho già provato senza fortuna, perché la prima attività viene mostrata fino a quando non viene eseguito l'inizio della seconda. Se premo il pulsante, il pulsante cambia colore e quindi la finestra di dialogo del processo è mostrata come mi aspetto che SOLO la ruota non gira. Questo è l'unico problema. – Andy

+1

@Andy, la finestra di dialogo di avanzamento non gira perché stai lavorando nel thread dell'interfaccia utente. Sposta il lavoro di download su un thread separato tramite AsyncTask o solo un thread o Runnable. Di nuovo, se osservate la risposta che ho dato sopra e provate a copiare cosa succede nel metodo onCreate() della mia risposta a quella domanda nel metodo onCreate() della vostra seconda attività, prometto che funzionerà. –

Problemi correlati