我正在使用J2ME中的Connector
,发现有时会花费很长时间才能发送请求,有时甚至可能会停止整个过程。
因此,我尝试将与Connector
相关的代码放入线程中,并尝试为该线程设置超时。但是我发现在J2ME中这样做非常困难,因为没有join(timeout)
方法。
有没有办法解决这个问题?或者在J2ME中处理网络连接的更好方法?
非常感谢。
我正在使用J2ME中的Connector
,发现有时会花费很长时间才能发送请求,有时甚至可能会停止整个过程。
因此,我尝试将与Connector
相关的代码放入线程中,并尝试为该线程设置超时。但是我发现在J2ME中这样做非常困难,因为没有join(timeout)
方法。
有没有办法解决这个问题?或者在J2ME中处理网络连接的更好方法?
非常感谢。
您应该使用以下3种机制的组合:
Connector.open()
可以与第三个参数一起用于超时。Thread.sleep()
和 Connection.close()
,而不是您调用 Connector.open()
的那个线程。Thread.sleep()
和 Thread.interrupt()
,而不是您调用 Connector.open()
的那个线程。在一些实现不良的 MIDP 运行时上,如果连接正在忙碌中,Connection.close()
可能会阻塞。您需要在计划支持的手机上进行彻底测试。
Thread.interrupt()
可能会使 MIDP 运行时(和底层手机操作系统)留下孤立资源,因此只在万不得已时使用它。