相关疑难解决方法(0)

如何取消Android http请求?

我正在使用AsyncTaskinitalize AndroidHttpClient并执行POST请求doInBackground().我希望用户能够通过按后退按钮取消请求.AsyncTask有一个cancel()方法只改变布尔返回值,isCancelled()然后doInBackground()在调用之前等待完成onCancelled().这意味着将其AsyncTask留给doInBackground()方法来持续检查任务是否已被取消(使用isCancelled()).如果已取消,doInBackground()应提前过早返回.我遇到的问题是99%的工作线程执行doInBackground()停止:

HttpResponse response = httpClient.execute(request[0]);
Run Code Online (Sandbox Code Playgroud)

因为此同步函数调用封装了请求的网络方面.如何在中途取消请求?

我正在考虑尝试在请求期间更改超时时间,但这似乎线程不安全.

我也在考虑覆盖AsyncTaskcancel()方法,它可以更好地工作.

有什么建议?

android http android-asynctask

14
推荐指数
2
解决办法
1万
查看次数

标签 统计

android ×1

android-asynctask ×1

http ×1