System events

System events are enumerated in TApaSystemEvent, which is defined in the apgtask.h header. 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;
                        }
                  }
        // Call the base class implementation
        CAknAppUi::HandleSystemEvent(aEvent);
         }