나는 당신이 원하는 것을 정확히 수행하는 방법이 있다고 생각하지 않지만, 당신이 원하는 행동을 취할 수 있다고 생각합니다. 첫째, 닫기 메뉴 항목을 수행 한 테스트를 기반으로 현재 화면의 onClose()를 호출하기 만하면됩니다. 기본 닫기 메뉴 항목은 전체 응용 프로그램을 닫지 않고 한 화면 만 닫습니다.
제가 생각할 수있는 가장 가까운 방법은 deactivate()입니다. 앱이 백그라운드로 전송 될 때 호출되지만 실제로 닫힐 때 호출되지 않습니다 (예 : 빨간색 '최종 통화'버튼을 누르면이 메소드가 호출됩니다. 메뉴에서 닫기를 누르면). 이것은 아마도 잔인한 행동 일지 몰라도, BlackBerry App Descriptor에서 "시작시 자동 실행"과 "BlackBerry 홈 화면에 프로그램 아이콘을 표시하지 않음"을 선택할 수 있습니다. 이렇게하면 앱이 사용자에게 보이지 않게되어 항상 배경에 있으며 홈 화면에 아이콘이 있고 UI를 표시 할 대체 엔트리 포인트를 만드는 GUI를 표시합니다. 그런 다음 사용자가 닫는 메뉴 항목을 선택하면 실제로 응용 프로그램을 백그라운드로 보내고 정리 코드를 deactivate()에 넣을 수 있습니다.
더 나은 방법은 부모 클래스의 onClose()를 재정의 한 다음 모든 화면을 해당 클래스에서 상속받는 것입니다. 거기에 정리 코드를 넣을 수 있습니다. 또는 닫기 메뉴 항목을 닫으려면 모든 화면을 makeMenu() 메서드보다 우선 적용하고 System.exit()을 호출하기 전에 적절한 정리 코드를 실행할 MenuItem을 추가하십시오.