Recovering from system-initiated process death
We've already learned how, whenever a configuration change occurs, our Activity
is recreated, which can cause our UI to lose its state. To bypass this issue and to preserve the UI's state, we ended up implementing a ViewModel
component and hoisted the UI state there.
But what would happen in the case of a system-initiated process death?
A system-initiated process death happens when the user places our application in the background and decides to use other apps for a while – in the meantime, though, the system decides to kill our app's process to free up system resources, which initiates process death.
Let's try to simulate such an event and see what happens:
- Start the Restaurants app using the IDE's Run button and mark some restaurants as favorites:
- Place the app in the background...