notifyDestroyed()メソッドはMIDletによって呼び出され、AMSに破棄状態に移行することを通知します。この通知がAMSによって受信されると、notifyDestroyed()メソッドを呼び出す前に、MIDletがすべてのリソースクリアプロセスをすでに実行していると見なされます。
したがって、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を実行しているときにスタックオーバーフローの状況に陥る可能性があります。