2010-04-25 9 views
0

Je crée une application bluetooth.Commande Ne fonctionnant pas dans un thread séparé dans J2me

J'ai créé un midlet simple avec une commande de sortie et je crée un fil pour trouver le service et découvrir le périphérique. Ce faisant, il affiche un écran animé sur lequel j'ai ajouté le commandListener parent pour la commande exit. Après une connexion réussie, l'utilisateur est représenté avec des messages d'accueil (l'écran actuel appelle la méthode d'affichage parent setCurrent pour s'afficher). Cet écran a également CommandListener défini sur le parent. Maintenant, je veux ajouter quelques commandes supplémentaires. J'ai implémenté l'interface CommandLIstener dans cette classe, ajouté quelques commandes mais les commandes ne fonctionnent pas. Je ne sais pas ce qui ne va pas. Je vous donne des extraits de code pour décrire complètement mon problème:

package name 
Imports here 

public class MyMidlet extends MIDlet implements 
CommandListener { 

public CommandListener theListener; 

public Display theDisplay; 
public Command exitCommand; 

public MyMidlet() { 
    // Retrieve the display for this MIDlet 
    //Create the initial screen 
} 

public void startApp() throws MIDletStateChangeException { 
} 
public void pauseApp() { 
} 
public void destroyApp(boolean unconditional) { 
} 
public void commandAction(Command c, Displayable d) { 

    // Determine if the exit command was selected 
    if (c == exitCommand) { 
     //End application here 
     notifyDestroyed(); 
    } else { 
     //Start the new thread here 
    } 
} 
} 

Maintenant, voici le code pour la classe qui est invoquée par le midlet ci-dessus dans un thread séparé; Lorsque je sélectionne la commande Envoyer, la chaîne ne s'ajoute pas sous forme, ni la commande de sortie ne fonctionne.

Quelle peut en être la cause?

J'ai besoin de mettre en œuvre cette fonctionnalité ... Y at-il un autre moyen d'y parvenir?

+0

@RishiPatel, s'il vous plaît améliorer le formatage. – Kiril

+0

Il était correctement formaté mais quand je l'ai collé, j'ai fait du formatage et c'est devenu comme ça. – RishiPatel

Répondre

0

Etes-vous sûr que le problème provient de la commande? Ce que je sais, c'est que l'appel openInputStream bloque le programme entier jusqu'à ce qu'il obtienne une réponse ou atteigne le délai, même si vous les exécutez sur des threads différents (ne sais pas pourquoi). La connexion est-elle vraiment établie?

Questions connexes