2016-02-29 55 views
0

我的情况是这样的:首先 叫我取它从数据库所需项目第一的AsyncTask。之后,我调用另一个AsyncTask来获取这些Item图像。从一个类中的多个AsyncTask获取数据?

我从AsynTasks使用回调获取数据。

这里是问题 - 因为我使用的回调,在我的课我有方法processFinish当它完成它的计算返回的AsyncTask数据。问题在于两个彼此依赖的异步任务。我现在应该怎么做?

回答

0

可以使用的AsyncTask的get()方法,将等待输出,并不会进行进一步 你也可以用一个超时使用它。

new BackgroundTask().execute.get();

new BackgroundTask.execute.get(long timeout); 
+0

正如我所提到的,这个方法不推荐使用,因为.get锁定UI。 – WheelPot

0

您可以执行里面一个又一个的AsyncTask,但由于这种方法在UI线程上运行,你应该这样做内onPostExecute()。

@Override 
    protected void onPostExecute(Void args) { 
     new AsyncTask2.execute(..); // Start second task once you've got first results 
    } 

在第二个AsyncTask完成后,您只需调用一次方法processFinish(..)一次。

反正有你为什么用两个AsyncTasks理由吗?根据您的解释,我们可以相信您可能只能使用一项任务。