我的情况是这样的: 首先我先调用AsyncTask从数据库中获取所需的项目。之后,我调用另一个AsyncTask,它获取这些Item图像。
我使用回调从AsynTasks获取数据。
这是问题 - 因为我正在使用回调,所以在我的类中我有方法processFinish
,它在完成计算时返回AsyncTask数据。问题在于两个异步任务相互依赖。我现在该怎么办?
答案 0 :(得分:0)
您可以使用asyncTask的get()方法,它将等待输出并且不会继续进行 你也可以暂停使用它。
ex new BackgroundTask().execute.get();
或
new BackgroundTask.execute.get(long timeout);
答案 1 :(得分:0)
你可以在另一个中执行一个AsyncTask,但是你应该在onPostExecute()中执行它,因为这个方法在UI线程上运行。
@Override
protected void onPostExecute(Void args) {
new AsyncTask2.execute(..); // Start second task once you've got first results
}
在第二个AsyncTask完成后,您只需调用一次方法processFinish(..)
。
无论如何,你有没有理由使用两个AsyncTasks?通过您的解释,我们可以相信您可能只能使用一项任务。