Autore Topic: Problemi ProgressDialog per Api level 4  (Letto 652 volte)

Offline Grifith

  • Utente junior
  • **
  • Post: 56
  • Respect: +1
    • Mostra profilo
    • La mia prima applicazione...
Problemi ProgressDialog per Api level 4
« il: 13 Maggio 2011, 16:46:57 CEST »
0
Buonasera,

ho un problema con una progressDialog. Nella mia applicazione, all'avvio (dipende dai casi, ma solitamente è così) parte una progressDialog con un messaggio di attesa...

La progressDialog contiene anche due pulsanti, uno per vedere alcune informazioni sull'applicazione, un'altra per uscire definitivamente dall'applicazione.

Il codice è il seguente:
Codice (Java): [Seleziona]
...
                dialog = new ProgressDialog(this);
                dialog.setMessage(getString(R.string.search_mission));

                dialog.setButton(getString(R.string.exit_mission), new DialogInterface.OnClickListener() {                     
                        public void onClick(DialogInterface dialog, int whichButton) {
                               
                                // dobbiamo rimandarci alla schermata di conferma dell'uscita
                                dialog.cancel();
                               
                                TextView tv = new TextView(Polling.this);
                                tv.setTextSize(20f);
                                tv.setText(Polling.this.getString(R.string.exit));
                               
                                alertBuilder = new AlertDialog.Builder(Polling.this);
                                alertBuilder.setView(tv)
                                .setCancelable(false)
                                .setNegativeButton(Polling.this.getString(R.string.no), new DialogInterface.OnClickListener() {
                                        public void onClick(DialogInterface dialog, int id) {
                                                dialog.cancel();
                                                Polling.this.dialog.show();
                                        }
                                })
                                .setPositiveButton(Polling.this.getString(R.string.yes), new DialogInterface.OnClickListener() {
                                       
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                                thr.setStart(false);
                                                thr.setFullStop(true); //gli imposto il controllo a false in modo da non fare più polling.
                                                thr.distruggi(); // metodo che mi permette la chiusura completa anche dell'applicazione
//                                              thr = null;
                                               
                                                setResult(Activity.RESULT_CANCELED, polling);
                                                finishActivity(Activity.RESULT_CANCELED); //????
                                                PollingThread.active = false;
                                                Process.killProcess(Process.myPid());
                                                System.exit(0);
                                               
                                        }
                                });
                               
                               
                                alert = alertBuilder.create();
                                alert.show();
                               
                        }
                });
               
                dialog.setButton2(getString(R.string.info), new DialogInterface.OnClickListener() {
                       
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                                dialog.cancel();
                               
                                TextView tv = new TextView(Polling.this);
                                tv.setText(getInfoApp());
                               
                                alertBuilder = new AlertDialog.Builder(Polling.this);
                                alertBuilder.setView(tv)
                                .setCancelable(false)
                                .setPositiveButton(Polling.this.getString(R.string.polling_close_message), new DialogInterface.OnClickListener() {
                                        public void onClick(DialogInterface dialog, int id) {
                                                dialog.cancel();
                                                Polling.this.dialog.show();
                                        }
                                });
                               
                               
                                alert = alertBuilder.create();
                                alert.show();
                               
                        }
                });
               
               

                dialog.show(); 

....

Finchè ho programmato e testato su un emulatore, impostate con le api 9 o 10, è sempre andato bene (però mai testato su dispositivo, ahimè).
Stamattina sono riuscito ad effettuare un test con un Samsung con FROYO con versione 2.0 (al massimo 2.2) e ho notato dei problemi spiacevoli.
Purtroppo, nel momento in cui premo uno dei due pulsanti della progressDialog, appena torno indietro, la progressDialog si blocca, non mostrandomi il movimento dell'immagine (pare che sia bloccato il terminale, ma i pulsanti continuano a funzionare).

Facendo un test con l'emulatore, mi compare la medesima problematica.

Avete qualche idea su come posso risolvere questa problematica?

Inoltre, ho visto che, nonostante questo difetto, sull'emulatore, l'applicativo funziona perfettamente (facendomi vedere le informazioni che mi arrivano da un thread che effettua delle connessioni web). Invece tramite mobile, ho visto che è andato in crash. Ora, non ricordo l'errore, ma, in questo caso, è possibile recuperare l'errore che ha dato (una specie di catalina.out del tomcat)?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Problemi ProgressDialog per Api level 4
« Risposta #1 il: 13 Maggio 2011, 17:20:34 CEST »
0
Oramai è tardi per recuperare l'errore però puoi sempre tentare di riprodurre il comportamento che ha fatto crashare l'applicazione e vedere l'eccezione tramite il logcat.

Offline Grifith

  • Utente junior
  • **
  • Post: 56
  • Respect: +1
    • Mostra profilo
    • La mia prima applicazione...
Re:Problemi ProgressDialog per Api level 4
« Risposta #2 il: 13 Maggio 2011, 17:30:25 CEST »
0
Oramai è tardi per recuperare l'errore però puoi sempre tentare di riprodurre il comportamento che ha fatto crashare l'applicazione e vedere l'eccezione tramite il logcat.

Tardi in che senso?
Cmq, ho cercato di replicare l'errore e non si replica... :(

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Problemi ProgressDialog per Api level 4
« Risposta #3 il: 13 Maggio 2011, 17:35:51 CEST »
0
Tardi in che senso?
Cmq, ho cercato di replicare l'errore e non si replica... :(

Nel senso che non si logga in qualche file o da qualche altra parte.
Comunque... buon debug :)