android当前状态,“持久状态”与“当前状态”

您不需要在onPause中存储用户首选项,因为正如您所说,框架会为您执行此操作。

要区分持久数据与状态信息,请考虑文本编辑器应用程序。

持久数据

假设用户输入了几个单词,然后退出应用程序。 用户没有明确地告诉我们将这些数据保存到文件中,但是当它们返回时,确保存储这些数据肯定会很好。 这是持久性数据,您希望将其存储在onPause()中。

州数据

同样,假设您有2个选项卡和一个跟踪当前选中的选项卡的variables。 这是您存储在onSaveInstanceState()中的状态数据。

灰质

最后想象一下,编辑器中有一个类可以跟踪编辑器中的字符数和行数。 这是状态数据,您可以将其存储在onSaveInstanceState()中,或者您可以将其丢弃并在重新启动时重新计算它。 是否将其丢弃可能取决于计算所需的时间,例如,如果您可以通过存储数据来阻止网络请求,请执行此操作。

进一步的想法

通过玩你的应用程序,很明显,如果有一个区域你没有松开正确的数据。 确保执行诸如点击主页按钮之类的操作,然后从设备管理器中关闭您的应用程序。 这样您就可以在应用程序关闭而非暂停的情况下遇到问题。

如果您的UI状态在生命周期事件中保持一致,并且您的用户数据仍然存在,那就很好了

根据评论进行编辑

我认为这里有两条标准来确定何时/保存什么。

第一个是非常主观的 – 你想要保存数据吗? 真的没有什么可以强迫你保存状态或数据。 保存这些信息会带来更好的用户体验吗? 如果您正在撰写电子邮件并尝试从其他应用程序复制/粘贴文本,则每次关闭应用程序时丢失您输入的半封电子邮件都会令人沮丧。

第二部分,确定要保存的内容取决于您是否可以根据您拥有的数据重建UI状态。 例如,如果您保存了文本数据,则必须表示用户正在编辑文本。 所以现在我们知道切换到编辑文本选项卡并填写保存的文本。

一般来说,如果您希望将用户返回到他们中断的相同位置,那么您需要考虑返回到该点所需的状态数据。 想象一下你的应用程序的原始加载版本

需要更改哪些数据才能将其转换为用户看到的最后状态?

您需要存储哪些数据才能返回此处?

这实际上是android如何工作,你的活动被破坏和重新创建,你的工作是再次设置运动(如果你选择这样做)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值