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