Вы конкретно звоните notifyDestroyed()
изнутри startApp()
.
Мое лучшее предположение - то, что телефон (или эмулятор), на котором вы пытаетесь это сделать, не справляется с этим слишком хорошо.
Попробуйте вместо этого:
Когда controller.initialize()
выдает исключение, отобразите простое Form
с одним «Выходом» Command
и сообщением об ошибке StringItem
.
Звоните notifyDestroyed()
из CommandListener.commandAction()
обратного вызова.
Что касается потоков, то вы сами должны их прекратить, когда пользователь захочет выйти из вашего приложения.
Большинство сред выполнения MIDP могут работать с некоторыми потоками, которые не завершаются должным образом, но если системные ресурсы не очищаются должным образом, это может вызвать проблемы, особенно на платформах, которые пытаются никогда не завершить сам процесс виртуальной машины Java.