Java 同时执行多个异步方法
我有3种异步方法: 1-更新数据Java 同时执行多个异步方法,java,android,Java,Android,我有3种异步方法: 1-更新数据 2-验证数据 3-进入 目前我的课程如下: public void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_sync); .... new Update (). execute (); new Validate () .execute (); new
2-验证数据
3-进入 目前我的课程如下:
public void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_sync);
....
new Update (). execute ();
new Validate () .execute ();
new Enter (). execute ();
}
假设它们都必须同时执行,但它们希望得到前一个的答案
如何使它们同时运行而不等待前一个方法完成?您应该在单独的线程中运行每个方法。 使更新、验证、输入实现可运行。 在run()方法中,调用execute()或将execute()重命名为run()。 然后
您可以使用.executeOnExecutor()*而不是.execute()同时运行多个
异步任务,如下所示:
*适用于API 11级或更高级别
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
new Update().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
new Validate().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
new Enter().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
else {
new Update().execute();
new Validate().execute();
new Enter().execute();
}
我认为最好的方法是使用异步类示例:私有类更新扩展异步任务{…}如何获得ExecutorService.execute?我编辑了这个问题。答案暗示ExecutorService是一个静态组件,而事实上它不是。谢谢,它工作了,它可以用所有异步方法完成,或者有一些限制?是的,它有一些限制,你可以在这里找到
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
new Update().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
new Validate().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
new Enter().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
else {
new Update().execute();
new Validate().execute();
new Enter().execute();
}