Android AsyncTask fils limites?

Je développe une application où j'ai besoin de mettre à jour certaines informations à chaque fois que l'utilisateur ouvre une session dans le système, j'ai aussi l'utilisation de la base de données dans le téléphone. Pour toutes ces opérations (mises à jour, récupération de données à partir de db et etc.) J'utilise async tâches. Comme jusqu'à présent, je ne vois pas pourquoi je ne devrais pas utiliser, mais récemment j'ai découvert que si je fais un peu d'opérations de certains de mes tâches asynchrones simplement arrêter sur la pré-exécuter et ne sautez pas de doInBackground. C'était juste trop bizarre de le laisser comme ça, alors j'ai mis au point une autre application très simple, juste pour vérifier ce qui est mal. Et assez étrange, j'ai le même comportement lorsque le nombre total de tâches asynchrones atteindre 5, la 6 on s'arrête sur la pré-exécuter.

Ne android ont une limite de asyncTasks sur l'Activité/App? Ou est-ce juste quelque bug et il doit être signalé? Quelqu'un a rencontrer le même problème et peut-être trouvé une solution de contournement pour elle?

Voici le code:

Il suffit de créer 5 de ces threads de travail en arrière-plan:

private class LongAsync extends AsyncTask<String, Void, String>
{
    @Override
    protected void onPreExecute()
    {
        Log.d("TestBug","onPreExecute");
        isRunning = true;
    }

    @Override
    protected String doInBackground(String... params)
    {
        Log.d("TestBug","doInBackground");
        while (isRunning)
        {

        }
        return null;
    }

    @Override
    protected void onPostExecute(String result)
    {
        Log.d("TestBug","onPostExecute");
    }
}

Et puis créer ce fil. Il entrera preExecute et l'accrocher (il ne sera pas aller à doInBackground).

private class TestBug extends AsyncTask<String, Void, String>
{
    @Override
    protected void onPreExecute()
    {
        Log.d("TestBug","onPreExecute");

        waiting = new ProgressDialog(TestActivity.this);
        waiting.setMessage("Loading data");
        waiting.setIndeterminate(true);
        waiting.setCancelable(true);
        waiting.show();
    }

    @Override
    protected String doInBackground(String... params)
    {
        Log.d("TestBug","doInBackground");
        return null;
    }

    @Override
    protected void onPostExecute(String result)
    {
        waiting.cancel();
        Log.d("TestBug","onPostExecute");
    }
}