2011-05-23 17 views
5

Quiero crear un simple ProgressDialog en mi actividad. He creado de esta manera:Problema de diálogo de progreso en Android

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.channellist); 

    final Context c=this; 

    t1=(TextView) findViewById(R.id.channellistStatus); 

    listView=(ListView) findViewById(R.id.channellist); 

    rc=RCManager.getInstance(); 

    chlistAdapter = new ChannelListAdapter(this,R.layout.channellist_row_lyt,clist); 

    listView.setAdapter(chlistAdapter); 

    t1.setText("No Channel List Found..."); 

    progDailog=ProgressDialog.show(this,"HI", "Loading"); 

    new Thread(new Runnable() { 

     @Override 
     public void run() { 
      try 
      { 
       Thread.sleep(3000); 
      } 
      catch (InterruptedException e) 
      { 
       e.printStackTrace(); 
      } 
      updateChannelList(); 
     } 
    }).start(); 

pero es lo que resulta en la siguiente excepción es decir WindowManager BadToken Excepción. No sé por qué es así. Por favor, ¿alguien puede ayudarme a resolver esto?

05-23 16:56:44.573: ERROR/AndroidRuntime(2494): FATAL EXCEPTION: main 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494): java.lang.RuntimeException: Unable   to start activity   ComponentInfo{com.nds.fr.activities/com.nds.fr.activities.TabGroup2Activity}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nds.fr.activities/com.nds.fr.activities.ChannelListing}: android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running? 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.ActivityThread.startActivityNow(ActivityThread.java:2503) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:651) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.widget.TabHost.setCurrentTab(TabHost.java:323) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:129) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:453) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.view.View.performClick(View.java:2408) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.view.View$PerformClick.run(View.java:8818) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.os.Handler.handleCallback(Handler.java:587) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.os.Handler.dispatchMessage(Handler.java:92) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.os.Looper.loop(Looper.java:123) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at java.lang.reflect.Method.invoke(Method.java:521) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at dalvik.system.NativeStart.main(Native Method) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nds.fr.activities/com.nds.fr.activities.ChannelListing}: android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running? 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.ActivityThread.startActivityNow(ActivityThread.java:2503) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at com.nds.fr.activities.TabGroupActivity.startChildActivity(TabGroupActivity.java:65) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at com.nds.fr.activities.TabGroup2Activity.onCreate(TabGroup2Activity.java:10) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  ... 18 more 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running? 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.view.ViewRoot.setView(ViewRoot.java:505) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:200) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:114) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.view.Window$LocalWindowManager.addView(Window.java:424) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.Dialog.show(Dialog.java:241) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.ProgressDialog.show(ProgressDialog.java:107) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.ProgressDialog.show(ProgressDialog.java:90) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.ProgressDialog.show(ProgressDialog.java:85) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at com.nds.fr.activities.ChannelListing.onCreate(ChannelListing.java:65) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):  ... 25 more 
+0

¿dónde está tratando de mostrar el cuadro de diálogo? – jkhouw1

+0

hola en mi actividad .in onCreate() – bHaRaTh

+0

intente ponerlo en inicio() en su lugar. la ventana de la aplicación aún no se ha creado en onCreate. – jkhouw1

Respuesta

19
progDailog=ProgressDialog.show(getParent(),"HI", "Loading"); 
+0

Hola Tanmay. gracias, está trabajando para mí. pero no entiendo por qué deberíamos llamar a getParent() aquí. – bHaRaTh

+1

Creo que está usando una 'TabActivity' aquí como clase principal. –

+0

sí, tienes razón. lo entiendo ahora . muchas gracias una vez más. – bHaRaTh

1

No se puede mostrar el cuadro de diálogo antes de que la actividad sea visible para el usuario. Llame a la presentación en onResume() o en algún botón enClickListener.

+0

Gracias Vladimir lo intentaré. – bHaRaTh

0

Si crea un nuevo hilo y la ajuste a dormir durante algún tiempo, sólo el nuevo hilo duerme. ¡Eso no tiene ningún efecto en el UI-Thread donde se crea tu actividad! Además, esta no es una buena manera de hacer esto de todos modos.

Además, no puede mostrar el cuadro de diálogo antes de que su actividad sea visible. Pruébalo en el onStart -metodo.

Cuestiones relacionadas