我的情况是这样的:首先 叫我取它从数据库所需项目第一的AsyncTask。之后,我调用另一个AsyncTask来获取这些Item图像。从一个类中的多个AsyncTask获取数据?
我从AsynTasks使用回调获取数据。
这里是问题 - 因为我使用的回调,在我的课我有方法processFinish
当它完成它的计算返回的AsyncTask数据。问题在于两个彼此依赖的异步任务。我现在应该怎么做?
我的情况是这样的:首先 叫我取它从数据库所需项目第一的AsyncTask。之后,我调用另一个AsyncTask来获取这些Item图像。从一个类中的多个AsyncTask获取数据?
我从AsynTasks使用回调获取数据。
这里是问题 - 因为我使用的回调,在我的课我有方法processFinish
当它完成它的计算返回的AsyncTask数据。问题在于两个彼此依赖的异步任务。我现在应该怎么做?
可以使用的AsyncTask的get()方法,将等待输出,并不会进行进一步 你也可以用一个超时使用它。
前new BackgroundTask().execute.get();
或
new BackgroundTask.execute.get(long timeout);
您可以执行里面一个又一个的AsyncTask,但由于这种方法在UI线程上运行,你应该这样做内onPostExecute()。
@Override
protected void onPostExecute(Void args) {
new AsyncTask2.execute(..); // Start second task once you've got first results
}
在第二个AsyncTask完成后,您只需调用一次方法processFinish(..)
一次。
反正有你为什么用两个AsyncTasks理由吗?根据您的解释,我们可以相信您可能只能使用一项任务。
正如我所提到的,这个方法不推荐使用,因为.get锁定UI。 – WheelPot