保存 Flutter 应用程序的完整状态

TSR*_*TSR 5 dart flutter

有没有办法保存然后恢复 Flutter 应用程序的完整状态?

通过full,我的意思是保存所有小部件和对象的状态

例如,一个文本字段将具有精确的文本、精确的颜色、突出显示、

GoogleMap 将具有精确的缩放状态、标记、折线

每个对象的内部状态都将被保留,甚至是私有字段。

...

我无法手动执行此操作,主要原因有以下三个:

  1. 状态太多,任何一个错误的状态都会导致差异的蝴蝶效应
  2. 某些类的某些状态是无法获取和设置的,因为它们是内部的(私有的)
  3. 有些状态在实例化时是随机的

我发现技术术语是https://en.wikipedia.org/wiki/Continuation

有一个重要的用例:

用户可以保存当前的工作状态,然后稍后继续。(更像是游戏中的“保存”)

nvo*_*igt 2

不,不存在保存“全部”的自动操作,因为“全部”是不切实际的并且无法确定。毕竟,在移动操作系统将您的应用程序从内存中踢出之前,您不会有无尽的时间或磁盘空间,您不应该只是“转储全部”,因为这对于任何真正的应用程序来说可能太多了。

一些好的信息可以在这里找到:

Flutter 应用程序恢复;当 Activity 被系统终止时如何保存应用程序状态?

如果您使用的是 BloC 状态管理方法,它有一个名为Hydrated_bloc的包,它基本上管理您的 BloC 存储,以便您下次打开应用程序时可以将其恢复到以前的值。

Flutter 本身似乎有一个RestorationManager类来处理这个问题,但它没有自动功能,你需要这样做。因此,您使用的所有控件或包可能无法保存其状态,然后您就会运气不佳并回到确定什么是重要的以及什么可能会丢失的方式。