【发布时间】:2015-05-06 19:17:35
【问题描述】:
这是我目前的情况。
Class Foo{
public static boolean isAsyncTask1Done;
public static boolean isAsyncTask2Done;
AsyncTask1(); //in onPostExecute make isAsyncTask1Done= true
AsyncTask2(); //in onPostExecute make isAsyncTask2Done= true
//execute the following method after the above 2 complete.
if (isAsyncTask1Done == true && isAsyncTask2Done == true)
doPostProcessing();
}
现在这个类也是一个活动。也因为 AsyncTask1();和 AsyncTask2();需要一些时间,我已将它们设为异步任务(我可能会将它们设为 intentservice)。
现在我的问题是我应该如何调用 doPostProcessing() ?我只需要在 AsyncTask1() 和 AsyncTask2() 完成后调用它。
谢谢
【问题讨论】:
-
AcyncTasks是否需要同时运行?或者你可以在第一个完成后开始第二个吗? -
我认为你应该使用两个线程,运行它并使用 join() 等待它们完成工作。
-
只是一个修复 - 你需要三个线程。一个 MainThread 将运行另外两个线程并加入它们。当它们完成时,MainThread 将调用回调。
-
@DanielNugent :任何订单都可以。我希望它们都是
AcyncTasks,以便它们都可以在 2 diff 中运行。线程和处理速度更快,因为假设按顺序执行它们。另外,就像我之前说的那样,他们会饿着肚子,所以我不希望他们把 UI 作为标准。方法。 -
@AlexanderRavikovich 我猜你更接近解决方案。只是想确保当您说线程时,这些是常规的
java threads而不是AcyncTasks或“IntentService”。
标签: android android-asynctask android-intentservice