I have made an app in kotlin through the android studio, Now I have used ViewModels to save UI data while phone rotation(configuration change), i also used onSaveInstanceState to save data while pressing back button but it's not working.
The code is below
fragOne.kt
class fragOne : Fragment() {
private lateinit var viewModel: fragViewModel
override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    if(savedInstanceState!=null){
        with(savedInstanceState) {
        viewModel.num=getInt("number")
        }
    }
    // Inflate the layout for this fragment
    var binding = DataBindingUtil.inflate<FragmentFragoneBinding>(
        inflater,
        R.layout.fragment_fragone,
        container,
        false
    )
    viewModel = ViewModelProviders.of(this).get(fragViewModel::class.java)
    // function to update number
    fun updateNumber()
    {
        binding.number.text="${viewModel.num}"
    }
    updateNumber()
    // setting on Click listener for add button
    binding.add.setOnClickListener()
    {
        viewModel.addFive()
        updateNumber()
    }
    // setting on on Click Listener for minus button
    binding.minus.setOnClickListener()
    {
        viewModel.minusOne()
        updateNumber()
    }
    return binding.root
}
override fun onSaveInstanceState(outState: Bundle) {
    // Save the user's current game state
    outState?.run {
        putInt("number",viewModel.num)
    }
    // Always call the superclass so it can save the view hierarchy state
    if (outState != null) {
        super.onSaveInstanceState(outState)
    }
}
}
ViewModelclass
class fragViewModel:ViewModel()
{
// Initializing num=0
var num=0
// Functions to add five or subtract one
fun addFive()
{
    num=num+5
}
 fun minusOne()
{
    num=num-1
}
}
please tell me because data is not saved when I press back
