Foros del Web » Programando para Internet » Android »

Problema dialog.dismiss()

Estas en el tema de Problema dialog.dismiss() en el foro de Android en Foros del Web. Buenas. A ver si me podeis echar un cable, porque llevo ya 3 semanas probando mil cosas y no hay manera de dar con la ...
  #1 (permalink)  
Antiguo 14/03/2014, 12:21
 
Fecha de Ingreso: noviembre-2012
Mensajes: 10
Antigüedad: 12 años
Puntos: 0
Problema dialog.dismiss()

Buenas.

A ver si me podeis echar un cable, porque llevo ya 3 semanas probando mil cosas y no hay manera de dar con la tecla.
Esto que voy a comentar me pasa sólo a veces y no se determinar el motivo.

En un Fragment llamo a una tarea asíncrona. Esta tarea crea un ProgressDialog y cuando finaliza, le hago un dismiss para ocultarla.

Tengo un registro en base de datos que me va almacenando los errores que se van produciendo en la APP. Y registro bastantes errores de este tipo.
El error se produce cuando hago el loading.dismiss();

Código:
java.lang.IllegalArgumentException: View not attached to window manager

*************************    TRAZA    *************************

android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:425)
android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:327)
android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:83)
android.app.Dialog.dismissDialog(Dialog.java:330)
android.app.Dialog.dismiss(Dialog.java:312)
com.ligapro.CargarComunidades$TareaAsincrona.onPostExecute(CargarComunidades.java:215)
com.ligapro.CargarComunidades$TareaAsincrona.onPostExecute(CargarComunidades.java:1)
android.os.AsyncTask.finish(AsyncTask.java:631)
android.os.AsyncTask.access$600(AsyncTask.java:177)
android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:176)
android.app.ActivityThread.main(ActivityThread.java:5419)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:525)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
dalvik.system.NativeStart.main(Native Method)

Código:
	public class TareaAsincrona extends AsyncTask<Object, Void, Boolean>
	{	
		ProgressDialog loading;
		
		@Override
		protected void onPreExecute() 
		{
			loading = new ProgressDialog(activity);
			loading.setProgressStyle(ProgressDialog.STYLE_SPINNER);
			loading.setMessage(getString(R.string.cargando));
			loading.setCancelable(false);
			loading.show();
		}
		
		@SuppressWarnings("unchecked")
		@Override
		protected Boolean doInBackground(Object... params) 
		{
			boolean resultado = false;
			
			try 
			{
				JSONObject json = new JSONObject();
				json.put("idUsuario", sesion.getIdUsuario());
				json.put("usuarioLogueado", sesion.getUsuario());
				json.put("contrasena", sesion.getContrasena());
				
				final Type tipoListado = new TypeToken<ArrayList<ComunidadBean>>(){}.getType();
				listado = (ArrayList<ComunidadBean>) WSUtils.llamarWS("ComunidadesWS/obtenerListadoComunidades", tipoListado, json);
				
				if(listado != null)
				{
					resultado = true;
				}
			}
			catch(Exception ex) 
			{
				resultado = false;
			}
			
			return resultado;
		}
		
		@Override
		protected void onPostExecute(Boolean resultado) 
		{
			if (loading != null && loading.isShowing()) 
				loading.dismiss();
			
			if(resultado)
			{
				// Código no relevante
			}
			else
			{
				// Código no relevante
			}
		}
	}
A ver si alguien logra decirme el porqué.
Muchas gracias!!

Etiquetas: activity, androi, app, java, view
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:08.