android– 配置更改(方向更改)和销毁活动 – 这是它应该工作的方式吗?

android– 配置更改(方向更改)和销毁活动 – 这是它应该工作的方式吗?,第1张

概述我读到了Android如何处理“配置更改”–通过销毁活动的Activity.我真的想知道AndroidTeam为什么会这样.我很感激有关推理如何进行的解释,因为我不明白.正如我所看到的那样,它以这种方式行事,这使我们处于痛苦的世界.让我们假设您有一个Activity,其中包含一些EditText:s,复选框

我读到了Android如何处理“配置更改” – 通过销毁活动的Activity.

我真的想知道AndroID Team为什么会这样.我很感激有关推理如何进行的解释,因为我不明白.正如我所看到的那样,它以这种方式行事,这使我们处于痛苦的世界.

让我们假设您有一个Activity,其中包含一些EditText:s,复选框等.如果用户开始使用文本/数据填充该表单然后更改方向(或获取Phonecall),则用户所做的所有输入都将消失.我没有找到任何保存国家的方法.这迫使我们编写极其痛苦的编码,以免丢失所有数据.

在我看来,你需要另一个“非活动”类(或者可能是“值保持”类),每个“表单元素”都有一个字段(EditText,复选框等).

对于存在的每个“表单元素”,您需要附加一个像“onChanged”(或onTextChanged或类似的东西)之类的事件来更新“值保持”类中的相应字段,以确保对于每个单个字符您键入(例如在EditText中)会立即保存.

也许你可以使用一些监听器(比如“onDestroy”或其他东西)然后用数据填充值保持类.

我还发现了this piece of info,他们谈论使用Bundle,onSaveInstanceState和onRestoreInstanceState,但这也意味着程序员必须手动保存,然后将值放回到正确的位置?这种方法比上面的建议稍微麻烦一点,但仍然不是很好.

有人能告诉我,我完全错了,这不是它的工作方式,我完全错过了一些重要的信息吗?

解决方法:

你应该阅读Application Fundamentals(特别是Activity lifecycle).由于内存约束等,Activity必须能够随时处理被杀事件,它只是一种更简洁的方式来处理轮换而不会增加太多的复杂性 – 而不是检查每个资源的替代资源,重新构建布局等你只需保存你的基本数据,杀死活动,重新创建它,然后重新加载数据(如果你愿意处理自己管理的额外复杂性,你可以使用onConfigurationChanged自己处理配置更改.)这也鼓励更好的做法 – 开发人员必须做好准备,让他们的活动因为方向改变而被杀死,这样做的好处就是准备好被记忆限制所杀死.

总结

以上是内存溢出为你收集整理的android – 配置更改(方向更改)和销毁活动 – 这是它应该工作的方式吗?全部内容,希望文章能够帮你解决android – 配置更改(方向更改)和销毁活动 – 这是它应该工作的方式吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1098274.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存