AsyncTasks não são coletadas, fazendo com que outras AsyncTasks não sejam executadas

Meu aplicativo usa muitas AsyncTasks. É um aplicativo da web depois de tudo. E quando eu acompanho a guia Debug, noto que cada AsyncTask diz que está correndo atrás dele e depois de 5 AsyncTasks, não consigo iniciar nenhuma AsyncTasks. Eu consertei alterando o executor paraTHREAD_POOL_EXECUTOR que permite que 15 segmentos sejam agrupados. Mas o AsyncTasks ainda mostra como em execução.

O AsyncTasks tem InputStreams neles e BufferedReaders neles para ler o JSON, mas eu nunca chamo oclose() método nas Flâmulas e Leitores. Poderia ser isso, ou será que o AsyncTask será coletado depois que terminar, não importa o quê?

Se esse é o problema, por que não posso executar mais de 5 AsyncTasks no meu aplicativo?

Vendo como eu coloco uma recompensa por isso, vou explicar isso mais explicitamente

oAsyncTasks todos passam por seus métodos. Todos eles são construídos da mesma maneira, exceto com diferentesBasicNameValuePairs. Tenho 100% de certeza de que não há nenhum erro fácil cometido no código.

Aqui está um exemplo de uma das AsyncTasks:

private class RunningEvent extends AsyncTask<Void, Void, Response> {

    @Override
    protected void onPreExecute() {
        if (Constants.isOnline(getApplicationContext())) {
            super.onPreExecute();
        } else {
            Toast.makeText(getApplicationContext(),
                    "No internet connection", Toast.LENGTH_LONG).show();
            return;
        }
    }

    @Override
    protected Response doInBackground(Void... empty) {
        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost(URL);

        try {
            List<NameValuePair> values = new ArrayList<NameValuePair>(5);
            values.add(new BasicNameValuePair("tag", "eventRunning"));
            values.add(new BasicNameValuePair("userid", String
                    .valueOf(response.user.userid)));
            post.setEntity(new UrlEncodedFormEntity(values));

            HttpResponse httpresponse = client.execute(post);
            HttpEntity entity = httpresponse.getEntity();
            InputStream stream = entity.getContent();

            Log.i("MenuActivity",
                    "Input streamed, parsing Gson for existing events");
            Gson gson = new Gson();
            Reader reader = new InputStreamReader(stream);

            eventresponse = gson.fromJson(reader, Response.class);
            return eventresponse;
        } catch (Exception e) {
            e.printStackTrace();
            Log.e("RunningEvent", "Error sending data to Server");
        }
        return null;
    }

    @Override
    protected void onPostExecute(Response result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);
        Log.i("MenuActivity", "Binding button");
        if (eventresponse != null) {
            if (eventresponse.success == 1) {
                eventresponse.user = response.user;
                bActivity.setOnClickListener(new OnClickListener() {

                    public void onClick(View arg0) {
                        Intent i = new Intent("com.xxx.xxx.EVENT");
                        i.putExtra("response", eventresponse);
                        running = false;
                        switcher.cancel(true);
                        MenuActivity.this.finish();
                        startActivity(i);
                    }

                });
            } else {
                bActivity.setText("Nieuw activity");
                bActivity.setOnClickListener(new OnClickListener() {

                    public void onClick(View arg0) {
                        Intent i = new Intent("com.xxx.xxx.NEWEVENT");
                        i.putExtra("response", response);
                        running = false;
                        switcher.cancel(true);
                        MenuActivity.this.finish();
                        startActivity(i);
                    }

                });
            }
        } else {
            Log.i("RunningEvent", "Response is null");
        }
    }

}

O exemplo acima é o que às vezes é executado como o sextoAsyncTask e nunca entrará nodoInBackground() método. Eu acredito que este é o 5Thread limite doSERIAL_EXECUTOR. Eu "consertei" o problema colocando a maioriaAsyncTasks emTHREAD_POOL_EXECUTOR, mas isso é apenas evitando isso.

Qual poderia ser a razão pela qual estesAsyncTasks nunca pare de correr e entupir oExecutor?

questionAnswers(1)

yourAnswerToTheQuestion