来自不同活动的几个同时AsyncTasks - 如何捕获正确的响应?

时间:2013-05-09 10:01:20

标签: android

我有几个Activities,每个AsyncTask都有自己的AsyncTask,它会向服务器发送请求并捕获其响应。现在,如果ProgressDialog正在执行中,我会Activities阻止用户导航到另一个ProgressDialog。我想摆脱ProgressBar并将其替换为Activities视图,以便用户可以在AsyncTaskFirst之间切换。我关注的是以下内容:如果ActivityFirst中的ActivitySecond已开始,用户导航到AsyncTaskSecond response所在的ActivitySecond,那么ActivityFirst就不会发生这种情况从第一个请求开始{{1}},我会在{{1}}中错过它吗?如果不可能,那很好。如果是 - 如何处理这种情况?非常感谢你提前。

2 个答案:

答案 0 :(得分:0)

我认为您的AsyncTaskActivity有某种引用,因此可以更新进度条。 如果是这样,那么您所要做的就是在AsyncTask

中添加一个方法
public void setHandler(MyTaskHandler handler) {
    this.handler = handler;
}

当您开始新活动时,请调用此方法并传递新活动。 然后,当AsyncTask调用Activity的更新进度方法时,无论任务从何处开始,它都将使用当前Activity

BTW:如果只是显示器的不同部分是相同的组件,那么使用片段而不是活动可能会更好。然后你根本没有这个问题,因为活动保持不变。请参阅以下有关片段的指南:

http://developer.android.com/training/basics/fragments/index.html

http://developer.android.com/guide/components/fragments.html

答案 1 :(得分:0)

如果AsyncTask在第一个Activity中开始执行,那么postExecute方法的执行应该会影响第一个Activity而不是第二个,除非你'我明确地设置了它。