Java me J2ME:HttpConnection未立即关闭

Java me J2ME:HttpConnection未立即关闭,java-me,nokia,midp,httpconnection,Java Me,Nokia,Midp,Httpconnection,我开发了一个使用HttpConnection的midlet。有一个单独的线程进行连接 现在我所做的是在该线程上提供另一个名为cancel()的方法,该方法将调用HttpConnection.close(),即使在run()方法中使用了HttpConnection 这样我可以中断/取消连接。这在我的sun wireless emulator上运行良好,但在诺基亚设备和诺基亚SDK2上不起作用 是否有可能一个线程正在使用HttpConnection,而另一个线程正在对其调用close()?我本以为会

我开发了一个使用HttpConnection的midlet。有一个单独的线程进行连接

现在我所做的是在该线程上提供另一个名为cancel()的方法,该方法将调用HttpConnection.close(),即使在run()方法中使用了HttpConnection

这样我可以中断/取消连接。这在我的sun wireless emulator上运行良好,但在诺基亚设备和诺基亚SDK2上不起作用


是否有可能一个线程正在使用HttpConnection,而另一个线程正在对其调用close()?我本以为会抛出异常,但midlet会挂起。

在执行IO时,您需要注意,除非文档中另有说明,否则大多数方法都可能被阻塞。HTTPConnection.close()就是这样一种方法


我猜(因为您没有共享任何代码)是从主GUI线程调用close(),从而在方法阻塞时挂起MIDlet。最好的方法可能是在执行连接的线程中设置一个“中止”布尔值,并在关键位置进行检查。作为替代方案,您可以生成一个“关闭线程”,执行可能的阻塞关闭调用。

您需要将MIDlet剥离到再现错误所需的最小代码量。这可能会帮助你修复它。如果它仍然存在,在这里发布代码,有人可以提供帮助。请求等待响应代码。那一次我尝试从MIDlet关闭连接,但连接没有立即关闭。请上传您的代码。