-3

全く理解できない問題があります!AsynctaskWeb サービスに接続してデータをダウンロードする があります。

しかし、私がこれを行うと、私の他の人はこのAsynctasksアクティビティ`!!Asynctasksを待ちます。しかし、私はこれを理解できません。Asynctask to finish his work evenin other

どうすればこれを回避できますか?. 同時に実行できると思ってAsynctasksいましたが、今は実行できません! . 何が問題ですか?REST とストリーム データのダウンロードがアプリ全体をブロックしているようです。

4

2 に答える 2

5

Android 3.0 以降で実行していて、デフォルトの実装AsyncTask(つまり、フレームワークからの実装) を使用している場合、一度に 1 つのタスクしか実行されません。ただし、並列実行を取得することは可能です。下記参照。

AsyncTaskのドキュメントから

実行順序

最初に導入されたときAsyncTasks、単一のバックグラウンド スレッドでシリアルに実行されました。からDONUT、これはスレッドのプールに変更され、複数のタスクが並行して動作できるようになりました。からはHONEYCOMB、並列実行によって発生する一般的なアプリケーション エラーを回避するために、タスクは単一のスレッドで実行されます。

本当に並列実行が必要な場合は、で呼び出すことができexecuteOnExecutor(java.util.concurrent.Executor, Object[])ますTHREAD_POOL_EXECUTOR

于 2013-09-23T19:03:24.260 に答える
2

使うexecutoOnExecutor

TheTask task = new TheTask();
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params); 

http://developer.android.com/reference/java/util/concurrent/Executor.html

于 2013-09-23T19:03:38.377 に答える