notifyDestroyed()メソッドは、MIDletによって呼び出され、AMSに破棄状態に移行することを通知します。この通知がAMSによって受信されると、MIDletがnotifyDestroyed()メソッドを呼び出す前にすべてのリソースクリア処理をすでに完了していると推測します。J2ME notifyDestroyed()
したがって、destroyApp()メソッドを呼び出すのではなく、MIDletを強制終了します。
notifyDestroyed()メソッドは、MIDletによって呼び出され、AMSに破棄状態に移行することを通知します。この通知がAMSによって受信されると、MIDletがnotifyDestroyed()メソッドを呼び出す前にすべてのリソースクリア処理をすでに完了していると推測します。J2ME notifyDestroyed()
したがって、destroyApp()メソッドを呼び出すのではなく、MIDletを強制終了します。
notifyDestroyed()の前にdestroyApp()を呼び出すのがベストプラクティスのようです。
try {
// Call destroyApp to release resources
destroyApp(false);
// Arrange for the MIDlet to be destroyed
notifyDestroyed();
} catch (MIDletStateChangeException ex) {
// MIDlet does not want to close
}
notifyDestroyed()が呼び出された後、AMSはdestroyApp()を呼び出すことはありません。
これを行う不正なAMSは、正しいMIDletを実行しているときにスタックオーバーフロー状態になる可能性があります。