継続起動 Java アプリケーションの注意事項


JADファイル中の MIDlet-Resident デスクリプタが「Y」、または「S」に設定されている Java アプリケーションは、待ち受け用に設定できる常駐型のアプリケーションです。 その内、MIDlet-Resident デスクリプタが「S」の Java アプリケーションは、実行中に機器を閉じても動作が一時停止されない継続起動型の Java アプリケーションです。

継続起動 Java アプリケーションの作成時に Form、または Canvas クラスを使用する場合、以下の点で注意が必要です。

継続起動 Java アプリケーションを待ち受け用に設定し、実行中に機器を閉じると、開いたときに画面が初期化されます。そのため、機器が開いたタイミングで Java アプリケーションが画面を再描画する必要があります。

機器が開いたタイミングで画面を再描画するには、DeviceControl の setBodyOpenListener() メソッドでBodyOpenLisnterを登録し、 BodyOpenLisnter の bodyOpened() メソッドで下記の処理を実行します。

Formクラスを使用している場合

public void bodyOpened() {
    setCurrent(null);    // 一旦、カレントを解除してから
    setCurrent(this);    // 設定しなおす
       :
}
Canvasクラスを使用している場合

public void bodyOpened() {
    repaint();            // 再描画
       :
}