刚刚在Android1.6 (Sony Xperia X10)上遇到了以下情况:当在同一设备上的WebView中使用XMLHttpRequest请求数据时(例如.127.0.0.1:8080)通过ServerSocket.accept()服务数据包时,XMLHttpRequest有时会卡住。调试器告诉我服务器实际上已经深入到ServerSocket.accept()中了,例如。他已送达或未收到最后一次请求。WebViewCoreThread停滞在
Object.wait() line: 288
Request.waitUntilComplete() line: 381
RequestHandle.waitUntilComplete() line: 262
Network.requestURL(String, Map, byte[], LoadListener, boolean) line: 195
FrameLoader.handleHTTPLoad() line: 204
FrameLoader.executeLoad() line: 131
...假设等待它的是http0 ... http3线程,所有这些线程都在等待
Object.wait(long, int) line: not available [native method]
RequestQueue(Object).wait() line: 288
ConnectionThread.run() line: 93 首先,我以为请求包丢失了。但这并不能解释为什么所有http..线程都处于相同的等待位置,因为一个线程应该等待响应,而其他线程则等待来自WebView的新作业。有什么想法吗?
发布于 2012-09-20 20:00:17
这似乎确实是Android中的一个bug。可以通过在发送响应之前向服务器添加延迟来规避此问题。
https://stackoverflow.com/questions/5738449
复制相似问题