How to save activity State in Android?

Before Architecture Components we were used to save the UI state by onSaveInstanceState() method


We need to override onSaveInstanceState(Bundle savedInstanceState) and store the application state values in the form of bundle

public void onSaveInstanceState(Bundle savedInstanceState) {

  savedInstanceState.putBoolean("mybool", true);
  savedInstanceState.putInt("myint", 1);
  savedInstanceState.putString("mystring", "Back to Activity State");


Saved instanceState could save only parceble data.
This have limit to staore small amount of parceble data


ViewModel instance is part of Applications process  and hence it is able to handle configuration changes.
If process dies, ViewModel instance lost and all the saved state will also be lost. 

It will work for large objects also.
Don't have any restritions to save the state.
You can read about Viewmodel here