Java 同时执行多个异步方法

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

我有3种异步方法:

1-更新数据
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();
}