title: Android Error: Window Leaked in AsyncTask
body: <p>I have only sometimes an error which says <code>Activity com.prueba.omnibus.EspacialTecnico has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@41e794a0 that was originally added here</code>
  This happens when the activity finishes and an asynctask function is executed. I have searched but I have no idea what the problem could be.</p>
  
  <p>Action that is doen when the user clicks "finish" and the error happens.</p>
  
  <pre><code>protected Dialog onCreateDialog(int id) {
      super.onCreateDialog(id);
      switch (id) {
      case (int) DIALOG_ALERT_SALIR:
          return new AlertDialog.Builder(this)
                  .setIcon(R.drawable.icon_warning)
                  .setTitle(R.string.warning)
                  .setMessage(R.string.confsalir)
                  .setPositiveButton(R.string.alert_dialog_ok,
                          new DialogInterface.OnClickListener() {
                              public void onClick(DialogInterface dialog,
                                      int whichButton) {
                                  if (batteryReceiver == null){   
                                  }
                                  else{
                                      try{
                                          unregisterReceiver(batteryReceiver);
                                      }catch(IllegalArgumentException iae){
                                      }
                                      batteryReceiver = null;
                                  }           
  
  
  
                                 Correccion();
                                 Parseo();
                                 reloj.cancel();
                                 if (Titulacion.IsReachable1(getApplicationContext())){
                                  new CreateResultados().execute();
  
  
                                  }
                                 EspacialTecnico.this.finish();
                                 try {
                                      XMLResumen.escribirXMLResume();
                                  } catch (FileNotFoundException e) {
                                      // TODO Auto-generated catch block
                                      e.printStackTrace();
                                  }}
  
  
                         })
                  .setNegativeButton(R.string.alert_dialog_cancel,
                          new DialogInterface.OnClickListener() {
                              public void onClick(DialogInterface dialog,
                                      int whichButton) {
  
                              }
                          })
  
                  .create();
      }
  
      return null;
  
  }
  </code></pre>
  
  <p>Asynctask Function
  Could the error be produced by the dialog?</p>
  
  <pre><code>class CreateResultados extends AsyncTask&lt;String, String, String&gt; {
  
  
          @Override
          protected void onPreExecute() {
              super.onPreExecute();
              pDialog = new ProgressDialog(EspacialTecnico.this);
              pDialog.setMessage("Transfiriendo...");
              pDialog.setIndeterminate(false);
              pDialog.setCancelable(false);
              pDialog.show();
          }
  
  
          protected String doInBackground(String... args) {
  
  
              List&lt;NameValuePair&gt; params = new ArrayList&lt;NameValuePair&gt;();
              params.add(new BasicNameValuePair("id", Ident.getDNI()));
              params.add(new BasicNameValuePair("nombre", Nombres.getNombre()));
              params.add(new BasicNameValuePair("tablet", Nombres.Tablet()));
              params.add(new BasicNameValuePair("fecha", Titulacion.fecha()));
              params.add(new BasicNameValuePair("test", nombre));
              params.add(new BasicNameValuePair("correctas", correctasString));
              params.add(new BasicNameValuePair("errores", fallosString));
              params.add(new BasicNameValuePair("PC", PC));
  
  
  
              JSONObject json = jsonParser.makeHttpRequest(url_crear_resultados,
                      "POST", params);
              Log.d("Create Response", json.toString());
  
  
              try {
                  int success = json.getInt(TAG_SUCCESS);
  
                  if (success == 1) {
  
  
                  } else {
  
                  }
              } catch (JSONException e) {
                  e.printStackTrace();
              }
  
              return null;
          }
  
  
  
          protected void onPostExecute(String file_url) {
              pDialog.dismiss();
          }
      }
  </code></pre>
  
  <p>Is there anything "bad" done? Thanks for the help</p>