If your S60 GUI-based application should close, for example, in out
of memory situations, you must handle the EEikCmdExit
command
ID in your override of CEikAppUi::HandleCommandL
. The UI architecture of your application determines where you
override CEikAppUi::HandleCommandL
. A typical implementation
is as follows:
void CMyCommandHandlingAppUi::HandleCommandL(TInt aCommand) { switch(aCommand) { case EEikCmdExit: case EAknSoftkeyExit: Exit(); break; default: break; } }
where CEikAppUI::Exit()
closes the application. CEikAppUI
also provides SaveAnyChangesL
and SaveL
methods in case you need to save the application document.
Note: In S60 view architecture applications, the EEikCmdExit
command
must be only handled once: either in the UI controller or in a view. Since
the exit command is an application wide command, it is recommended that it
be handled in the UI controller implementation.
CEikAppUI::Exit()
exits the application.
If the application is embedded, control returns to the parent, which should
also exit. The application framework sends an EEikCmdExit
command
ID to each application in this chain to support this behavior.
Note: CEikAppUI::Exit()
is guaranteed not to
return. This means that you should not trap this method. Among other things,
do not call another method when you handle the command ID that triggers an
exit.