2016-05-25 5 views
2

私のクラスの中にAsyncTaskがあります。私は次のようにAsyncTaskを実行しています:Android AsyncTaskのdoInBackgroundが起動していません

mAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR)。

私のアプリケーションをデバッグするとき、mAsyncTaskのonPreExecute()関数は正しく呼び出されますが、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); 
     .... 
    } 
} 

これは、会社のアプリです、executeOnExecutor機能がasycnTask並列に実行する必要があることを、いくつかのAsyncTaskはバックグラウンドで実行されているが、私は読んだことがあります。

は、私はまた、これらの記事を読んでいるが、彼らは助けにはならなかった。

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

問題への直接的な解決策ではありませんが、アクティビティライフサイクルとの統合の欠如とsdkバージョン間でのさまざまな動作のために、AsyncTaskからの離脱をお勧めします。 お気に入りのRxJavaを含む他のいくつかのより良い解決策があります – GreyBeardedGeek

+0

ありがとう、私は見ていきますが、完全なコードを書き直したくありません:/。 ThreadPoolsについてどう思いますか? – bendaf

答えて

0

私は問題を解決した、私は他のAs mAsyncTask2.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);のように実行されたバックグラウンドのynctask。このAsyncTaskは特別な理由でdoInBackgroundを終了したことがなく、これが原因で問題が発生しました。

私は他のAsyncTaskを新しいスレッドに置き換えました。今は動作しています。 ありがとうございます!

関連する問題