0

我有几个Activities,每个都有自己的AsyncTask,它向服务器发送请求并捕获它的响应。这些天如果AsyncTask正在执行,我有一个ProgressDialog阻止用户导航到另一个Activities。我想摆脱ProgressDialog并用视图替换它,ProgressBar以便用户可以在Activities. 我担心以下问题:如果AsyncTaskFirst开始ActivityFirst并且用户导航到开始的ActivitySecond位置AsyncTaskSecond,会不会发生response从第一个请求开始的情况,ActivitySecond所以我会错过它ActivityFirst?如果这是不可能的,那很好。如果是 - 如何处理这种情况?非常感谢您提前。

4

2 回答 2

0

如果AsyncTask在第一个开始执行,Activity那么它的执行postExecute应该预计会影响第一个Activity而不是第二个,除非您已明确设置它。

于 2013-05-09T10:12:02.540 回答
0

我假设您AsyncTask对 有某种引用Activity,因此它可以更新进度条。如果是这样,那么您所要做的就是在以下位置添加一个方法AsyncTask

public void setHandler(MyTaskHandler handler) {
    this.handler = handler;
}

当您开始一个新活动时,调用此方法并传递新活动。然后当AsyncTask调用的更新进度方法时,无论任务从哪里开始Activity,它都会使用当前的。Activity

顺便说一句:使用片段而不是活动可能会更好,如果它是相同的组件,只是显示的不同部分。那么你根本就没有这个问题,因为活动保持不变。请参阅这些有关片段的指南:

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

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

于 2013-05-09T10:08:43.430 回答