[FMX] 在应用切换到后台时保存当前状态

在移动应用开发中,一个程序被切到后台,有的时候,我们需要保存下状态,然后以便在程序被操作系统在后台中止时,再次启动能够恢复原来的状态(比如 iOS 中,你的程序被切后台后,很可能由于某些原因(如内存不足)被操作系统中止)。要实现这个效果,您可以:

1、在主窗体的 OnCreate 事件中,检查 SaveState 的 Stream 的大小,如果不为0,代表你在上次切换到后台时,保存了状态信息,你需要做的就是从中恢复状态数据。然后再清除掉保存的状态文件,以避免下次启动时由于状态文件还存在,从而恢复成了错误的状态。

一个简单的示例函数,这里使用未加密的 QJSON 来保存数据状态:

2、在窗体的 OnSaveState 事件中,保存当前应用的状态:

好了,这样在程序启动时,就会恢复应用的状态,不怕应用被后台清理掉了。实际上,我们也可以不使用它的SaveState 接口,自己保存文件并恢复就好。注意这个文件如果放到了其它程序可见的目录下时,应该加密以避免隐私泄露。

分享到:

1 条评论

沙发空缺中,还不快抢~