SavedStateHandle 是什么,怎么使用
时间: 2024-02-06 22:08:51 浏览: 26
SavedStateHandle是Android Jetpack中的一个类,用于在Activity或Fragment之间保存和恢复数据。它的主要作用是帮助我们在配置更改(如屏幕旋转)等情况下保留数据。
使用SavedStateHandle非常简单。首先,在Activity或Fragment中创建一个SavedStateHandle对象,可以使用ViewModelProvider来创建它。例如,在Fragment中:
```
val viewModel: MyViewModel by viewModels()
val savedStateHandle = viewModel.savedStateHandle
```
然后,您可以使用SavedStateHandle对象来保存和恢复数据。例如,要保存一个字符串:
```
savedStateHandle.set("myString", "Hello World")
```
要检索该字符串,请使用以下代码:
```
val myString = savedStateHandle.get<String>("myString")
```
注意,这里使用了类型参数,因为SavedStateHandle可以保存任何类型的数据,但是在检索数据时,需要指定数据的类型。
除了set()和get()方法之外,SavedStateHandle还提供了许多其他有用的方法,例如contains()方法用于检查是否存在某个键,remove()方法用于删除某个键等等。
总的来说,SavedStateHandle是一种非常有用的工具,可以帮助我们更轻松地处理配置更改等情况下的数据保存和恢复。