on change android screen orientation resume chronometer
/**
* We need to save "Activity's State" before changing orientation.
* onSaveInstanceState helps us to save all the values we want to get back after orientation changes.
* Then restore them in onCreate() method.
*/
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
timeWhenStopped = binding.chronometerCounter.getBase() - SystemClock.elapsedRealtime();
binding.chronometerCounter.stop();
Log.d("timeBeforeStateChange", String.valueOf(timeWhenStopped));
outState.putString("timeOnStateChange", String.valueOf(timeWhenStopped));
super.onSaveInstanceState(outState);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
if (savedInstanceState == null) {
// activity is being created a first time
} else {
// activity is being recreated and onSaveInstanceState() has already been called.
long timeOnStateChange = Long.parseLong(savedInstanceState.getString("timeOnStateChange"));
binding.chronometerCounter.setBase(SystemClock.elapsedRealtime() + timeOnStateChange);
binding.chronometerCounter.start();
}
}