1

基本的に、次々とシリアルに実行されるいくつかのスレッドを開始したいと思います。私はそれのために使用Thread.join()しています。ただし、アプリケーションの種類はハングアウトしてANR状態になります。AsyncTaskをループ内に配置すると、すべてのタスクが次々に連続して実行されるのか、それとも並列に実行されるのかを知りたいのですが。

for(String s : list)
{
    new asynctask(s).execute();
}
4

1 に答える 1

2

基本的に、次々とシリアルに実行されるいくつかのスレッドを開始したいと思います。

このステートメントを読んだ直後に頭に浮かぶのは、毎回新しいタスクを作成するのではなく、IntentServiceの使用を検討する必要があるということです。

基本的にIntentServiceは

IntentServiceは、Intentを介してリクエストを受信します。このリクエストには、完了するタスクに関する情報が含まれています。次に、このタスクがキューに追加され、すべてのタスクが順番に非同期で完了します。

IntentService使用する利点は

アクティビティに何が起こっても、操作には少なくとも「サービスプロセス」の優先順位が保証されます。複数のファイルを順番にダウンロードする場合は、これを強くお勧めします。

ここでは、の実装方法に関する非常に優れたチュートリアルを見つけることができますIntentService

http://mobile.tutsplus.com/tutorials/android/android-fundamentals-intentservice-basics/

于 2012-07-09T06:31:33.233 に答える