Chapter 11. View Models: Model Behavior

image

As apps grow more complex, fragments have more to juggle.

And if you’re not careful, this can lead to bloated code that tries to do everything. Business logic, navigation, controlling the UI, dealing with configuration changes…you name it, it’s in there. In this chapter, you’ll learn how to deal with this kind of situation using view models. You’ll discover how they simplify your activity and fragment code. You’ll find out how they survive configuration changes, keeping your app’s state safe and sound. Finally, we’ll show you how to build a view model factory, and when this might be needed.

Configuration changes revisited

As you learned in Chapter 5, Bad Things can happen when you rotate the screen while running an app. Changing the screen orientation is a configuration change, which causes Android to destroy and recreate the current activity. As a result, views and properties can lose their state and get reset:

image

In Chapter 5, you learned how to handle this using the activity’s onSaveInstanceState method. This method gets triggered before the activity gets destroyed, and it’s used to save any values that may get lost in a Bundle. When the activity gets recreated, you can use these saved values to restore the state ...

Get Head First Android Development, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.