在屏幕上更改我的android应用程序布局的方向
当屏幕方向发生变化时,我多次阅读到,为了保存编辑文本和文本视图的数据或任何单选按钮,我必须使用在屏幕上更改我的android应用程序布局的方向,android,Android,当屏幕方向发生变化时,我多次阅读到,为了保存编辑文本和文本视图的数据或任何单选按钮,我必须使用onSaveInstanceState()方法 但当我改变屏幕方向时,编辑文本、文本视图和单选按钮的数据不会被删除 那么使用onSaveInstanceState()方法的主要目的是什么呢。如果安全地保存了我的数据,为什么我们必须使用它?默认情况下可能会处理某些视图/属性。你可以浏览这些文档,找出到底是哪些文档以及它们是如何被处理的,但是 我建议您对这些保存/加载进行手动控制,以确保事情按您希望的方式处
onSaveInstanceState()
方法
但当我改变屏幕方向时,编辑文本、文本视图和单选按钮的数据不会被删除
那么使用
onSaveInstanceState()
方法的主要目的是什么呢。如果安全地保存了我的数据,为什么我们必须使用它?默认情况下可能会处理某些视图/属性。你可以浏览这些文档,找出到底是哪些文档以及它们是如何被处理的,但是
我建议您对这些保存/加载进行手动控制,以确保事情按您希望的方式处理,以避免出现边缘案例错误,并在需要时保留某些设置/属性/状态
这实际上取决于活动/片段/布局/视图/偏好等的复杂性和内容,如果你真的需要记住几分钟前的状态
- 关于使用这对方法对视图的默认处理:
默认实现通过在层次结构中具有id的每个视图上调用View.onSaveInstanceState(),并通过保存当前关注的视图的id(所有视图都由onRestoreInstanceState的默认实现还原),来为您处理大多数每个实例的UI状态。如果重写此方法以保存每个视图未捕获的其他信息,则可能需要调用默认实现,否则请准备好自己保存每个视图的所有状态
因此,建议使用onsaveinstancestate()和restore函数?即使默认情况下我的数据被保留。对吗?就像我说的,这取决于你的用例。如果您需要保存状态,请自行保存,以确保状态正确。您不能总是依赖默认值,因为它们在不同的API版本中可能会有不同的行为。我会在我的答案中编辑更多信息。请注意关于何时不会调用savedinstancestate(…)的部分。这很容易被忽略,以后也很难找到。