Autore Topic: Progress Dialog "interruzione imprevista" [Android 2.1 API]  (Letto 1133 volte)

Offline andre9004

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Lg Optimus Hub
  • Sistema operativo:
    Windows 7
Progress Dialog "interruzione imprevista" [Android 2.1 API]
« il: 27 Giugno 2012, 16:37:23 CEST »
0
Ciao,  rieccomi qui  :-( ho continuamente problemi con un progress dialog che non vuole funzionare...

Allora, creo un progress dialog, un handler e un nuovo thread faccio partire il tutto, il progress dialog parte ma dopo un po l'applicazione crasha come mai?

Codice contenuto nel metodo OnCreate della main activity
Codice (Java): [Seleziona]
btn_geo.setOnClickListener(new View.OnClickListener() {

                        public void onClick(View arg0) {
                                final ProgressDialog progressDialog = ProgressDialog.show(
                                                PiuVisteActivity.this, "Attendere",
                                                "Caricamento in corso...", true);
                                final Handler handler = new Handler() {
                                        @Override
                                        public void handleMessage(Message msg) {

                                        }
                                };

                                new Thread() {
                                        @Override
                                        public void run() {

                                                ....... codice ......

                                                progressDialog.dismiss();
                                                handler.sendEmptyMessage(0);

                                        }
                                }.start();
                        }
                });

Crasha ed ecco il log....

Codice: [Seleziona]
06-27 16:29:51.769: W/dalvikvm(4817): threadid=9: thread exiting with uncaught exception (group=0x40018560)
06-27 16:29:51.769: E/AndroidRuntime(4817): FATAL EXCEPTION: Thread-10
06-27 16:29:51.769: E/AndroidRuntime(4817): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
06-27 16:29:51.769: E/AndroidRuntime(4817):         at android.os.Handler.<init>(Handler.java:121)
06-27 16:29:51.769: E/AndroidRuntime(4817):         at android.widget.Toast.<init>(Toast.java:68)
06-27 16:29:51.769: E/AndroidRuntime(4817):         at android.widget.Toast.makeText(Toast.java:231)
06-27 16:29:51.769: E/AndroidRuntime(4817):         at matic.mycoupon.PiuVisteActivity$1$2.run(PiuVisteActivity.java:221)
06-27 16:29:52.139: E/WindowManager(4817): Activity matic.mycoupon.PiuVisteActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@40535338 that was originally added here
06-27 16:29:52.139: E/WindowManager(4817): android.view.WindowLeaked: Activity matic.mycoupon.PiuVisteActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@40535338 that was originally added here
06-27 16:29:52.139: E/WindowManager(4817):         at android.view.ViewRoot.<init>(ViewRoot.java:259)
06-27 16:29:52.139: E/WindowManager(4817):         at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
06-27 16:29:52.139: E/WindowManager(4817):         at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
06-27 16:29:52.139: E/WindowManager(4817):         at android.view.Window$LocalWindowManager.addView(Window.java:424)
06-27 16:29:52.139: E/WindowManager(4817):         at android.app.Dialog.show(Dialog.java:241)
06-27 16:29:52.139: E/WindowManager(4817):         at android.app.ProgressDialog.show(ProgressDialog.java:107)
06-27 16:29:52.139: E/WindowManager(4817):         at android.app.ProgressDialog.show(ProgressDialog.java:90)
06-27 16:29:52.139: E/WindowManager(4817):         at matic.mycoupon.PiuVisteActivity$1.onClick(PiuVisteActivity.java:162)
06-27 16:29:52.139: E/WindowManager(4817):         at android.view.View.performClick(View.java:2485)
06-27 16:29:52.139: E/WindowManager(4817):         at android.view.View$PerformClick.run(View.java:9080)
06-27 16:29:52.139: E/WindowManager(4817):         at android.os.Handler.handleCallback(Handler.java:587)
06-27 16:29:52.139: E/WindowManager(4817):         at android.os.Handler.dispatchMessage(Handler.java:92)
06-27 16:29:52.139: E/WindowManager(4817):         at android.os.Looper.loop(Looper.java:123)
06-27 16:29:52.139: E/WindowManager(4817):         at android.app.ActivityThread.main(ActivityThread.java:3729)
06-27 16:29:52.139: E/WindowManager(4817):         at java.lang.reflect.Method.invokeNative(Native Method)
06-27 16:29:52.139: E/WindowManager(4817):         at java.lang.reflect.Method.invoke(Method.java:507)
06-27 16:29:52.139: E/WindowManager(4817):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:874)
06-27 16:29:52.139: E/WindowManager(4817):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:632)
06-27 16:29:52.139: E/WindowManager(4817):         at dalvik.system.NativeStart.main(Native Method)

Grazie mille a chi mi aiuterà   :D

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Progress Dialog "interruzione imprevista" [Android 2.1 API]
« Risposta #1 il: 27 Giugno 2012, 16:42:43 CEST »
0
Il LogCat parla chiaro:  ;-)

Codice: [Seleziona]
06-27 16:29:51.769: E/AndroidRuntime(4817): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
Non sono stato ad analizzare in dettaglio il codice, ma puoi eventualmente confrontarlo con questo: nel secondo esempio del secondo messaggio c'è proprio il caso Loop con handler di messaggi interno al thread.
[medio] Introduzione ai Thread - Android Developers Italia
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline andre9004

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Lg Optimus Hub
  • Sistema operativo:
    Windows 7
Re:Progress Dialog "interruzione imprevista" [Android 2.1 API]
« Risposta #2 il: 27 Giugno 2012, 18:58:42 CEST »
0
Il LogCat parla chiaro:  ;-)

Lo so ma non lo capisco  :'( comunque guardo :) grazie mille ...

Nel caso dovessi risolvere, cosa molto probabile, vi faccio sapere :D

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
R: Progress Dialog "interruzione imprevista" [Android 2.1 API]
« Risposta #3 il: 28 Giugno 2012, 10:54:21 CEST »
0
Il dismiss del progress dia log devi chiamarlo fuori dal thread.... io lo chiamerei nell'handler.

Inviato dal mio Galaxy Nexus con Tapatalk 2

Offline andre9004

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Lg Optimus Hub
  • Sistema operativo:
    Windows 7
Re:Progress Dialog "interruzione imprevista" [Android 2.1 API]
« Risposta #4 il: 29 Giugno 2012, 11:18:23 CEST »
0
Grazie del consiglio ricky, comunque adesso sto proseguendo nell'applicazione perchè ho un termine di scadenza... quando ho fatto il grosso cerco di risolvere il problema percui se vedete che non rispondo è per questo !

Grazie mille :D

edit: ho risolto mettendo Looper.prepare()
« Ultima modifica: 27 Luglio 2012, 21:08:50 CEST da andre9004 »