Android supports the ability to change languages at run time, location, hardware, and it is done by terminating and restarting activity to implement the appeal function. The resolution of the resources used in the activity can be forced to be re-evaluated and the most appropriate resource value is selected for the experience configuration.
To allow activity to listen for runtime configuration changes, you need to add a Android:configchanges property to its manifest node to specify which configuration changes you want to handle
The following list describes the run-time changes that you can specify:
MCC and MNC detect SIM and the code for the country or network associated with it has changed
Locale user changes the device's language settings
Keyboardhidden Shows or hides the keyboard, d-pad, or other input mechanisms
Keyborad changed the type of keyboard.
Fontscale user modified the preferred font size
Uimode The overall UI pattern has changed. such as car mode, daytime or night mode
The orientation screen rotates between portrait and landscape (Note: This property resolves the issue of activity re-creation after screen rotation when making a video player)
Screenlayout screen layout has changed, such as activating another screen,
ScreenSize when the available screen size changes, such as when changing between landscape and portrait
Smallestscreensize when the physical screen size changes, such as linking to an external display
Android Runtime configuration changes