【发布时间】:2012-10-04 18:54:48
【问题描述】:
我遇到的问题是关于两个单独的 Asynctask 类。第一个 asynctask 在 doInBackground 方法中使用了网络操作
HttpResponse httpResponse = httpClient.execute(httpPost);
另一个是使用progressDialog加载图像的线程。
如果我使用慢速互联网连接(这意味着第一个 asynctask 尚未完成)然后直接转到第二个 asynctask 会发生什么,第二个类将等到第一个完成。
顺便说一句,在我调用第一个 asynctask 之后,我直接完成了活动并调用了另一个,这有什么关系吗?
tl;dr 版本:
在第一个 asynctask 完成之前,第二个 asynctask 不会执行 doinbackground 进程
我知道这一点是因为进度对话框显示了很长时间(我在 preExecute 中显示它并在 postexecute 中将其关闭)
编辑:
第一个异步任务涉及等待来自网络的响应。因此,虽然没有响应,但第二个 asynctask 不会执行其 doinbackground 进程。
编辑 2:
有没有办法让我正确使用这两个异步任务,这样第二个就不必等待第一个完成?
【问题讨论】:
-
您的帖子不是很清楚,“直到第一个 asynctask 完成后,第二个 asynctask 才会执行 doinbackground 过程”不是问题。
-
developer.android.com/reference/android/os/AsyncTask.html。通过链接。您可能会找到问题的答案。
-
我有 2 个独立的异步任务类。发生的事情是第二个 asynctask 不会执行其 doinbackground 方法,直到第一个 asynctask 是网络操作完成。我想我不太擅长计划事情
-
进度对话框显示了很长时间。这意味着它确实调用了 onpreExecute 方法并在 doinBackground 方法处停止
标签: java android multithreading http android-asynctask