How to implement thread timeout in J2ME?
I am using Connector
in J2ME and found that sometimes it take a very long time to send a request, and sometime it may halt the whole process.
Connector
in a thread and try to set timeout to the thread. But I found out that it's very difficult to do this in J2ME because there's no join(timeout)
in J2ME.
Is there any way to do this? Or any better way to deal with network connection in J2ME?
Than开发者_StackOverflow社区ks a lot in advance.You should use a combination of 3 mechanisms:
Connector.open()
can be used with a third parameter for timeout.- You can call
Thread.sleep()
andConnection.close()
from a different thread than the one you callConnector.open()
in. - You can call
Thread.sleep()
andThread.interrupt()
from a different thread than the one you callConnector.open()
in.
On some badly implemented MIDP runtimes, Connection.close()
can block if the connection is busy. You need to test this thoroughly on the handsets you plan to support.
Thread.interrupt()
can leave the MIDP runtime (and the underlying handset operating system) with orphaned resources so only use it as a last resort.
精彩评论