After testing it out on my phone, it seems that removing updateSystemUI() fixes the issue of the black bar, but going back into the application is still jarring: the window seems to be resized twice, to a version with the black bar, then it is removed almost immediately after, which also makes pausing/resuming very slow.
Here’s the logcat output for SDL from my phone. Sometime after onResume() is called the window is resized to 720x1232, then nativeResume() seems to be called to resize it back to the correct 720x1280.
2019-07-19 11:29:51.949 30311-30311/? V/SDL: onStart()
2019-07-19 11:29:51.950 30311-30311/? V/SDL: onResume()
2019-07-19 11:29:52.015 30311-30311/? D/SurfaceView: BG show() Surface(name=Background for - SurfaceView - io.deemo.app/io.deemo.app.MainActivity@9996799@0) org.libsdl.app.SDLSurface{9996799 VFE… .F…ID 0,0-720,1232}
2019-07-19 11:29:52.031 30311-30311/? D/SurfaceView: surfaceCreated 1 #8 org.libsdl.app.SDLSurface{9996799 VFE… .F…ID 0,0-720,1232}
2019-07-19 11:29:52.031 30311-30311/? V/SDL: surfaceCreated()
2019-07-19 11:29:52.033 30311-30311/? D/SurfaceView: surfaceChanged (720,1232) 1 #8 org.libsdl.app.SDLSurface{9996799 VFE… .F…ID 0,0-720,1232}
2019-07-19 11:29:52.033 30311-30311/? V/SDL: surfaceChanged()
2019-07-19 11:29:52.033 30311-30311/? V/SDL: pixel format RGB_565
2019-07-19 11:29:52.034 30311-30311/? V/SDL: Window size: 720x1232
2019-07-19 11:29:52.034 30311-30311/? V/SDL: Device size: 720x1280
2019-07-19 11:29:52.039 3161-7704/? I/SensorService: createSensorEventConnection package name org.libsdl.app.SDLSurface
2019-07-19 11:29:52.044 30311-30781/? V/SDL: Running main function hxcpp_main from library libApplicationMain.so
2019-07-19 11:29:52.044 30311-30781/? V/SDL: nativeRunMain()
2019-07-19 11:29:52.069 30311-30781/? D/openal: AL lib: alc_initconfig: Supported backends: opensl, sdl2, null, wave
2019-07-19 11:29:52.384 30311-30781/? V/SDL: setOrientation() orientation=-1 width=720 height=1280 resizable=true hint=
2019-07-19 11:29:52.390 30311-30311/? D/SurfaceView: BG hide() Surface(name=Background for - SurfaceView - io.deemo.app/io.deemo.app.MainActivity@9996799@1) false true org.libsdl.app.SDLSurface{9996799 VFE… .F… 0,0-720,1232}
2019-07-19 11:29:52.391 30311-30311/? D/SurfaceView: surfaceDestroyed 1 #6 org.libsdl.app.SDLSurface{9996799 VFE… .F… 0,0-720,1232}
2019-07-19 11:29:52.391 30311-30311/? V/SDL: surfaceDestroyed()
2019-07-19 11:29:52.392 30311-30311/? V/SDL: nativePause()
2019-07-19 11:29:52.396 30311-30311/? D/SurfaceView: surfaceCreated 1 #6 org.libsdl.app.SDLSurface{9996799 VFE… .F… 0,0-720,1232}
2019-07-19 11:29:52.396 30311-30311/? V/SDL: surfaceCreated()
2019-07-19 11:29:52.400 30311-30311/? D/SurfaceView: surfaceChanged (720,1232) 1 #6 org.libsdl.app.SDLSurface{9996799 VFE… .F… 0,0-720,1232}
2019-07-19 11:29:52.401 30311-30311/? V/SDL: surfaceChanged()
2019-07-19 11:29:52.401 30311-30311/? V/SDL: pixel format RGBA_8888
2019-07-19 11:29:52.402 30311-30311/? V/SDL: Window size: 720x1232
2019-07-19 11:29:52.402 30311-30311/? V/SDL: Device size: 720x1280
2019-07-19 11:29:52.906 30311-30311/? V/SDL: nativeResume()
2019-07-19 11:29:52.908 3161-11397/? I/SensorService: createSensorEventConnection package name org.libsdl.app.SDLSurface
2019-07-19 11:29:52.915 30311-30311/? D/SurfaceView: BG destroy() Surface(name=Background for - SurfaceView - io.deemo.app/io.deemo.app.MainActivity@9996799@0) org.libsdl.app.SDLSurface{9996799 VFE… .F… 0,0-720,1232}
2019-07-19 11:29:52.926 30311-30311/? V/SDL: onWindowFocusChanged(): true
2019-07-19 11:29:52.926 30311-30311/? V/SDL: nativeFocusChanged()
2019-07-19 11:29:52.972 30311-30311/? D/SurfaceView: BG hide() Surface(name=Background for - SurfaceView - io.deemo.app/io.deemo.app.MainActivity@9996799@1) false true org.libsdl.app.SDLSurface{9996799 VFE… .F…ID 0,0-720,1280}
2019-07-19 11:29:52.981 30311-30311/? D/SurfaceView: surfaceChanged (720,1280) 1 #5 org.libsdl.app.SDLSurface{9996799 VFE… .F…ID 0,0-720,1280}
2019-07-19 11:29:52.981 30311-30311/? V/SDL: surfaceChanged()
2019-07-19 11:29:52.981 30311-30311/? V/SDL: pixel format RGBA_8888
2019-07-19 11:29:52.985 30311-30311/? V/SDL: Window size: 720x1280
2019-07-19 11:29:52.985 30311-30311/? V/SDL: Device size: 720x1280
Again, the window is being resized twice, so it’s still pretty jarring. Is the SDLActivity class written for us? The issue seems to be somewhere in there.