System events are enumerated in TApaSystemEvent, which is defined in the apgtask.h. You must override CCoeAppUI::HandleSystemEventL() to handle these events, which should be done in the UI controller. The default implementation is empty. The possible events are as follows:
enum TApaSystemEvent { EApaSystemEventShutdown = 1, EApaSystemEventBackupStarting, EApaSystemEventBackupComplete, EApaSystemEventBroughtToForeground };
The following is a code example of system event handling:
void CExampleAppUI::HandleSystemEvent( const TWsEvent& aEvent ) { switch( *( TApaSystemEvent* )( aEvent.EventData() ) ) { case EApaSystemEventBackupStarting: { // Handle backup starting //... break; } case EApaSystemEventBackupComplete: { // Handle backup complete //... break; } case EApaSystemEventShutdown: { // Handle shutdown //... break; } default: { break; } } // Call the base class implementation CAknAppUi::HandleSystemEvent( aEvent ); }