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

无论操作系统版本如何,我都使用这样的代码来做到这一点:

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 回答