Ich habe eine j2me Midlet läuft auf einem Handy. Der Code funktioniert gut, aber das Problem, das auftritt, ist, dass das Programm mehr als eine Instanz von sich selbst zu laufen scheint. Ich habe Code am Anfang der Anwendung in der appStart() -Methode, die beim Start der Anwendung zweimal ausgeführt wird. Während der Laufzeit des Programms kann der Code zweimal durchlaufen werden, wenn Text auf den Bildschirm geschrieben wird.Mehrere Instanzen von j2me Midlet Problem
Der Code sieht wie folgt aus:
public MyClass()
{
form = new Form("MyProgram");
cmdClose = new Command("EXIT", Command.EXIT, 1);
form.addCommand(cmdClose);
form.setCommandListener(this);
display = Display.getDisplay(this);
display.setCurrent(form);
}
public void startApp()
{
form.append("App starting\n");
// Rest of program
}
Ich habe keine Ahnung, warum der Code zweimal aufgerufen wird.
Ich bin auf dem i290 codieren.
Es muss kein JVM-Problem sein, da startApp() in Varioud-Instanzen aufgerufen werden kann, z. B. wenn der Bildschirm des Telefons abgedunkelt wird oder aufgrund verschiedener Ereignisse die Anwendungen in den Hintergrund und Vordergrund versetzt werden. Die Korrektur, die Sie angegeben haben, ist jedoch korrekt! – Ram
Wenn die Anwendung in den Hintergrund gestellt wird, sollte pauseApp() an erster Stelle aufgerufen werden. In diesem Fall würde der Fehler nicht die pauseApp() -Methode aufrufen, aber es ist trotzdem ein Fehler. – Malcolm
pauseApp() wird nicht unbedingt in allen Implementierungen aufgerufen, sondern es werden die Befehle showNotify und hideNotify verwendet. Ihre Konnotation ist jedoch richtig! – Ram