管理界面状态:分而治之
您可以通过在各种类型的持久性机制之间划分工作,高效地保存和恢复界面状态。在大多数情况下,这些机制中的每一种都应存储 Activity 中使用的不同类型的数据,具体取决于数据复杂度、访问速度和生命周期的权衡:
- 本地持久性存储:存储在您打开和关闭 Activity 时不希望丢失的所有数据。
- 示例:歌曲对象的集合,其中可能包括音频文件和元数据。
-
ViewModel:在内存中存储显示关联界面控制器所需的所有数据。
- 示例:最近搜索的歌曲对象和最近的搜索查询。
-
onSaveInstanceState():存储当系统停止后又重新创建界面控制器时轻松重新加载 Activity 状态所需的少量数据。这里指的是将复杂的对象保留在本地存储空间中,并将这些对象的唯一 ID 存储在 onSaveInstanceState() 中,而不是存储复杂的对象。
- 示例:存储最近的搜索查询。