我有一个非常奇怪的问题。
我的应用程序使用异步任务发出 http 请求。在较低版本中一切正常,但是当我在带有 Android 4.1.1 的三星 Galaxy Tab 2 上进行测试时,异步任务总是抛出 TimeoutException。
这是我使用代码的方式。
try {
response = new HttpContents(getApplicationContext()).execute(url).get(4000, TimeUnit.MILLISECONDS);
// the .get(4000,...) part will force a Timeout after 4 secs, but it doesn't happen in pre-honeycomb. Only in android 4+
} catch (TimeoutException e) {
// Log.e("WEB TO EXCEPTION",e.toString());
return null; // This doesn't matter.
}
HttpContents 是 External AsyncTaks 类(它可以很好地返回内容)。
在我测试的较低 android 版本上,我得到了正确的响应。
我没有从主线程运行它(因此,它不会冻结我的 UI)。
出于某种原因,当异常被抛出时,http 响应被准确地返回。在另一个异步任务的 doInBackground 中执行异步任务是否存在问题(在 android 4.0 中)。因为这对我来说似乎是个问题。
为什么我只在 ICS 上而不是在较低版本上得到这个超时异常。是否有任何已知问题?