public void handleMessage(Message msg) {
   switch (msg.what) {
     case HANDLE_APPLICATION_QUIT_EVENT: // Close the application cleanly
       {
         Log.i(TAG, "mHandler.handleMessage(): APPLICATION_QUIT_EVENT");
         mBackgroundHandler.leaveSession();
         mBackgroundHandler.cancelAdvertise();
         mBackgroundHandler.unbindSession();
         mBackgroundHandler.releaseName();
         mBackgroundHandler.exit();
         stopSelf();
       }
       break;
     case HANDLE_JOIN_SESSION_EVENT: // Synchronous join session
       {
         Log.i(TAG, "mHandler.handleMessage(): USE_JOIN_CHANNEL_EVENT");
         mBackgroundHandler.joinSession();
       }
       break;
     case HANDLE_LEAVE_SESSION_EVENT: // Gracefully close session
       {
         Log.i(TAG, "mHandler.handleMessage(): USE_LEAVE_CHANNEL_EVENT");
         mBackgroundHandler.leaveSession();
       }
       break;
     default:
       break;
   }
 }