If your Symbian 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 Symbian 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.