在 Android 开发中,Activity
和 Fragment
的状态保存与恢复是一个常见的坑点。如果处理不当,可能会导致应用在屏幕旋转、后台恢复等场景下出现数据丢失、UI 状态不一致等问题。本篇文章将详细探讨如何正确保存和恢复 Activity
与 Fragment
的状态,并提供最佳实践的代码示例。
1. 坑点:Activity 和 Fragment 的重建导致数据丢失
当用户旋转屏幕或者系统回收内存时,Activity
或 Fragment
可能会被销毁并重建。如果没有妥善处理状态保存,这将导致用户输入或显示的数据丢失,影响用户体验。
避坑建议:
- 使用
onSaveInstanceState()
方法来保存 Activity
或 Fragment
的状态。 - 避免通过构造函数传递数据,改用
Bundle
或 ViewModel
来保存和恢复状态。 - 对于重要的数据(如用户输入、临时状态等),应保存到
Bundle
中。