2016-05-25 5 views
2

У меня есть AsyncTask внутри одного из моих классов. Я выполняю AsyncTask как:Android AsyncTask doInBackground не запущен

mAsyncTask.executeOnExecutor (AsyncTask.THREAD_POOL_EXECUTOR);

Когда я отлаживаю приложение, функция onPreExecute() mAsyncTask вызывается правильно, но функция doInBackground не вызывается. Что может вызвать проблему?

PlanRouteAsync Код: -

private class PlanRouteAsync extends AsyncTask<Void, Integer, Void>{ 

    @Override 
    protected void onPreExecute(){ 
     super.onPreExecute(); 
     mIsRunning = true; 
    } 
    @Override 
    protected Void doInBackground(Void... params){ 
     ... 
     return null; 
    } 
    @Override 
    protected void onProgressUpdate(Integer... values){ 
     super.onProgressUpdate(values); 
     ... 
    } 
    @Override 
    protected void onCancelled(){ 
     super.onCancelled(); 
     ... 
    } 
    @Override 
    protected void onCancelled(Void aVoid){ 
     super.onCancelled(aVoid); 
     .... 
    } 
    @Override 
    protected void onPostExecute(Void aVoid){ 
     super.onPostExecute(aVoid); 
     .... 
    } 
} 

Это приложение компания, несколько AsyncTask работает в фоновом режиме, но я читал, что функция executeOnExecutor должна выполнять параллельно asycnTask.

Я читал эти сообщения также, но они не помогли:

Android SDK AsyncTask doInBackground not running (subclass)

Android AsyncTask not working

EDIT:

Мой build.gradle файл:

android { 
    compileSdkVersion 23 
    buildToolsVersion '23.0.3' 

    defaultConfig { 
     minSdkVersion 18 
     targetSdkVersion 23 
    } 
} 

dependencies { 
    compile project(':mPChartLib') 
    compile project(':sVGSupport') 
    compile 'com.google.android.gms:play-services:9.0.0' 
    compile 'com.android.support:appcompat-v7:23.4.0' 
    compile 'io.github.luizgrp.sectionedrecyclerviewadapter:sectionedrecyclerviewadapter:1.0.4' 
} 
+0

Какова ваша 'targetSdkVersion'? –

+2

Не прямое решение вашей проблемы, но я бы посоветовал остаться в стороне от AsyncTask в целом из-за отсутствия интеграции с жизненным циклом активности и изменения поведения в версиях sdk. Есть несколько других лучших решений, включая мой любимый, RxJava – GreyBeardedGeek

+0

Спасибо, я посмотрю, но я не хочу переписывать полный код: /. Что вы думаете о ThreadPools? – bendaf

ответ

0

Я решил проблему, у меня был другой As ynctask в фоновом режиме, которые были выполнены как mAsyncTask2.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);. Эта AsyncTask никогда не закончила doInBackground по специальным причинам, и это вызвало проблему.

Итак, я заменил другую AsyncTask новой Thread, и теперь она работает. Спасибо за ваши предложения!