@Override
    public void update() {
        /*Invoking can be delayed by delaying the draw of GlSurfaceView component on the screen*/
        if (legacyApplication == null || glSurfaceView == null) {
            return;
        }
        legacyApplication.update();
        if (!GameState.isFirstUpdatePassed()) {
            ((Activity) getContext()).runOnUiThread(() -> {
                jmeSurfaceViewLogger.log(Level.INFO, "User delay finishes with 0 errors");
                if (onRendererCompleted != null) {
                    onRendererCompleted.onRenderCompletion(legacyApplication, legacyApplication.getContext().getSettings());
                }
            });
            GameState.setFirstUpdatePassed(true);
        }
    }
A state change observer to the holder Activity life cycle, used to keep this android view up-to-date with the holder activity life cycle.

@param source the life cycle source, aka the observable object.
@param event  the fired event by the observable object, which is dispatched and sent to the observers.
jme3-android/src/main/java/com/jme3/view/surfaceview/JmeSurfaceView.java