Java Micro: Wie beginne ich

Aus Wikibooks

Die Klasse Midlet[Bearbeiten]

Jedes Java Programm der Mobile Edition hat eine Startklasse, welche sich von javax.microedition.midlet.Midlet ableitet. Daher werden die Programme auch als Midlets bezeichnet.Ein MIDlet ist ein Objekt, das von der Umgebung über Events benachrichtigt wird.

Es kann sich in vier verschiedenen Zuständen befinden(Loaded, Paused, Active, Destroyed). Dies wird durch die Java Application Management Software (AMS) dem sogenannten Programmmanager gesteuert. In den Zustand "Loaded" gelangt das Midlet nur beim Start der Anwendung, danach wechselt es nach "Paused". In diesem Status stoppen alle Prozesse des Midlets, damit mehr Ressourcen für die Anwendung im Vordergrund zur Verfügung stehen( z.B. eingehende Anrufe) oder die Batterie nicht unnötig belastet wird. Der Zustand "Active" bearbeitet die eigentlichen Aufgaben des Programms und verbraucht dementsprechend viele Ressourcen. Über die Funktion destroyApp() gelangt man in den "Destroyed" Zustand. Hier werden letzte Befehle vor endgültigen Beendigung durchgeführt( z.B. Speicher freigeben).


Die Klasse javax.microedition.midlet.Midlet selbst ist abstract und definiert die folgende Schnittstelle:

public abstract class MIDlet {

 // Konstruktoren
  protected MIDlet() { }

  // Abstrakte Methoden
  protected abstract void startApp() throws MIDletStateChangeException;
  protected abstract void pauseApp();
  protected abstract void destroyApp(boolean _boolean) throws MIDletStateChangeException;

  // Implementierte Methoden
  public final void notifyDestroyed() { }
  public final void notifyPaused() { }
  public final void resumeRequest() { }
  public final native String getAppProperty(String string) {}
  public final boolean platformRequest(String string) throws ConnectionNotFoundException { }
  public final native int checkPermission(String string) {}
}



Das eigene Midlet[Bearbeiten]

Das kleinste eigene Midlet wird entsprechend so implementiert:

package de.bastie.me.sudoku;

import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class SimpleMidlet extends MIDlet {

  protected void startApp () throws MIDletStateChangeException {}

  protected void pauseApp () { }

  protected void destroyApp (final boolean b) throws MIDletStateChangeException {
    this.notifyDestroyed();
  }
}

Wir benachrichtigen die JVM / das Handy über die Beendigung unseres Programms mit Hilfe der Methode notifyDestroyed(). Ein System.exit(int) ist hingegen nicht aufzurufen.