2010-05-07 80 views
3

我在J2ME中使用Connector,發現有時需要很長時間才能發送請求,有時可能會暫停整個過程。
因此,我嘗試將與Connector相關的代碼放在一個線程中,並嘗試設置線程超時。但是我發現在J2ME中這樣做很困難,因爲J2ME中沒有join(timeout)
有沒有辦法做到這一點?或者有什麼更好的方法來處理J2ME中的網絡連接?
非常感謝。如何在J2ME中實現線程超時?

+0

你是如何整合超時的? – Viraj 2012-04-02 06:01:57

回答

4

,您應該使用的3個機制的組合:

  • Connector.open()可以與超時第三參數一起使用。
  • 您可以從不同的線程比你在打電話Connector.open()一個叫Thread.sleep()Connection.close()
  • 你可以叫Thread.sleep()Thread.interrupt()從不同的線程比你在打電話Connector.open()之一。

在某些執行不力的MIDP運行時,Connection.close()可能會阻塞連接是否繁忙。您需要在您計劃支持的手機上進行徹底測試。

Thread.interrupt()可以讓MIDP運行時(以及底層手機操作系統)具有孤立的資源,因此只能將其作爲最後的手段。

+0

你能爲此顯示一些示例代碼嗎? – Viraj 2012-04-02 06:03:12