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; } }