我有两个异步任务,即任务1和任务2。
我需要先运行task 1,然后再运行task 2,但我不想通过在task 1的onPostExecute实现中调用task 2来耦合这两个任务;因为在其他情况下,我将task 1用作独立的。
是否有一种方法可以定义两个异步任务,而不是彼此绑定,并在特定情况下将它们链接起来?
非常感谢你的帮助。
发布于 2013-07-25 20:18:09
您可以尝试如下所示:
final Executor directExecutor = new Executor() {
public void execute(Runnable r) {
r.run();
}
};
AsyncTask.execute(new Runnable() {
task1.executeOnExecutor(directExecutor, params1);
task2.executeOnExecutor(directExecutor, params2);
});我的机器上现在没有android SDK,所以我无法验证它。
发布于 2013-07-25 17:33:31
您可以执行以下操作:
YourAsyncClass1 thread1 = new YourAsyncClass1();
thread1.execute(inputArgument1);
try {
outputResult1 = thread1.get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
if(outputResult1 == true /*Or expected result*/){
YourAsyncClass2 thread2 = new YourAsyncClass2();
thread2.execute(inputArgument2);
}https://stackoverflow.com/questions/17853992
复制相似问题