我遇到了 asynctasks 和 http 请求的问题。
用户可以按下两个不同的按钮。这两个按钮都从网络服务器下载信息。我希望这些请求可以取消。每次调用之前都会显示一个进度对话框。
http请求是在异步任务中执行的,并且我在进度对话框上有一个 OnDismiss 监听器,如果按下后退键,它会取消异步任务。
效果是 50/50。
如果我执行http请求,取消asynctask,然后执行一个新请求,它可能会起作用,但也可能导致http请求无限挂起。
这行是它挂起的地方:
response = httpclient.execute(urlConnection, context);
是否有其他方法可以取消可取消的呼叫,或者我可以采取什么措施来避免挂起?
我写了一个AsyncTask
通过http执行一些下载,我发现调用cancel()
任务上的 并不会真正停止任务的执行。 “取消”的任务将继续执行其后台操作。呼唤cancel()
似乎只是打电话onCancelled()
然后是AsyncTask
doesn't call onPostExecute()
当它完成时。也许您的第一个任务仍然拥有下一个任务所需的某些网络资源?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)