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