Я не верю, что есть метод, который делает именно то, что вы хотите, но я думаю, что вы можете получить поведение, которое вы хотите. Во-первых, основываясь на тестировании, которое я сделал, пункт меню закрытия просто вызывает onClose () для текущего экрана. Элемент меню закрытия по умолчанию не закрывает все приложение, он просто закрывает один экран.
Ближайший метод, который я могу вспомнить, это deactivate () , он вызывается, когда приложение отправляется в фоновый режим, а не когда оно фактически закрыто (т.е. этот метод будет вызываться, если вы нажмете красный кнопка "завершение вызова", но не при нажатии кнопки закрытия в меню). Это, вероятно, было бы излишним, но вы могли бы выбрать «Автоматический запуск при запуске» и «Не отображать значок приложения на главном экране BlackBerry» в дескрипторе приложения BlackBerry. Это сделало бы приложение невидимым для пользователя, чтобы оно всегда было в фоновом режиме, чтобы на домашнем экране была иконка и отображался графический интерфейс пользователя, вы бы создали альтернативную точку входа, которая будет вызывать пользовательский интерфейс. Затем, когда пользователь выбирает пункт меню «Закрыть», все, что он на самом деле делает, это отправляет приложение в фоновый режим, и вы можете поместить свой код очистки в deactivate ().
Гораздо лучшим подходом было бы просто переопределить onClose () в родительском классе и затем сделать так, чтобы все ваши экраны наследовали от этого класса. Вы можете поместить свой код очистки там. Или, если вы хотите, чтобы пункт меню закрытия закрывал все экраны, переопределите метод makeMenu () и добавьте MenuItem , который выполнит соответствующий код очистки перед вызовом System.exit ().