2010-05-07 4 views
3

J'utilise Connector dans J2ME et j'ai trouvé que cela prenait parfois beaucoup de temps pour envoyer une requête, et parfois il pouvait arrêter tout le processus.
Donc j'essaye de mettre le code lié à Connector dans un fil et essaye d'établir le délai au fil. Mais j'ai découvert qu'il est très difficile de le faire dans J2ME car il n'y a pas de join(timeout) dans J2ME.
Y a-t-il un moyen de le faire? Ou une meilleure façon de gérer la connexion réseau dans J2ME?
Merci beaucoup d'avance.Comment implémenter le délai d'attente de thread dans J2ME?

+0

Comment avez-vous intégré le timeout? – Viraj

Répondre

4

Vous devez utiliser une combinaison de 3 mécanismes:

  • Connector.open() peut être utilisé avec un troisième paramètre pour le délai.
  • Vous pouvez appeler Thread.sleep() et Connection.close() d'un fil différent de celui que vous appelez Connector.open() dans.
  • Vous pouvez appeler Thread.sleep() et Thread.interrupt() d'un fil différent de celui que vous appelez Connector.open() dans.

Sur certains les runps MIDP mal implémentés, Connection.close() peuvent bloquer si la connexion est occupée. Vous devez tester cela de manière approfondie sur les combinés que vous envisagez de prendre en charge.

Thread.interrupt() peut laisser l'environnement d'exécution MIDP (et le système d'exploitation du combiné sous-jacent) avec des ressources orphelines, ne l'utilisez qu'en dernier recours.

+0

Pouvez-vous montrer un exemple de code pour cela? – Viraj

Questions connexes