1

一度に複数のAsyncTaskを起動するための最良の方法、または正しい方法はどれですか?

現在、次の形式で実行されています。

new VoyAir().execute("http://"+objAcceso.IpPc+"/voya ir.php");
new Voy().execute("http://"+objAcceso.IpPc+"/voy.php");
new Vome().execute("http://"+objAcceso.IpPc+"/vome.php");
new gus().execute("http://"+objAcceso.IpPc+"/gus.php");

しかし、私はandroid 4.0.3でプログラミングしていて、正しく機能しません。これを行うための最良の方法の例を挙げていただけますか?ありがとう

4

1 に答える 1

2

私はそのようなコードを使用して、OSのバージョンに関係なくそれを行います。

public class WebnetMobileTools {
    public static <P, T extends AsyncTask<P, ?, ?>> void executeAsyncTask(T task, P... params) {
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
           task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
       } else {
           task.execute(params);
       }
    }
}

代わりにそれを使用するには

new VoyAir().execute("http://"+objAcceso.IpPc+"/voya ir.php");

あなたがやる

WebnetMobileTools.executeAsyncTask( new VoyAir(), 
                     "http://"+objAcceso.IpPc+"/voya ir.php");

これは、変更が導入されたAndroid 3.0まで機能していたため、起動されたすべての非同期タスクを常に並列で実行します。

于 2012-11-22T19:41:37.643 に答える