几个asynctask

时间:2012-11-22 19:22:35

标签: android android-asynctask

这是最好的方式,还是一次启动多个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中编程并且它无法正常运行。 你能举一个最佳方法的例子吗?感谢

1 个答案:

答案 0 :(得分: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");

这将始终在paralell中运行所有已启动的异步任务,因为它曾用于Android 3.0,其中引入了更改。