在Firemonkey移动应用程序中保存对象本地数据的最佳方法是什么?

时间:2019-01-21 21:35:51

标签: delphi firemonkey

在我的应用中,我从RESTServer获得了JSON响应。然后,我将它们转换为数据对象,将它们存储在TObjectList中,然后将列表绑定到TListBindSourceAdapter进行显示。

我想将TObjectList数据保存到本地存储中。我的问题是:保存它的最佳方法是什么?

我尝试创建 SQLite数据库,我可以将记录保存到SQLite DB中,但是它需要将我的TObjectList通过代码手动转换为DB记录,而当我检索时,我需要将其转换回数据对象。它涉及更多的开发工作。

还是应该使用 SaveState ?我可以使用SaveState将本地数据另存为字符串。我可以尝试使用TJson.ObjectToJson将数据对象转换为JSON并保存。为此,我可以将TObjectList保存到Array中,将其存储到数据对象中,并转换为JSON。检索时,我可以使用TJson.JsonToObject转换回去。

还是有更好的方法呢?在Firemonkey中是否有保存本地数据的常用方法?有什么类似于Angular中的状态管理?

1 个答案:

答案 0 :(得分:0)

最后,我使用SaveState将数据保存到本地。由于我尝试并发现使用SaveState可以更快地开发并且更容易开发。

使用saveState而不是保存到本地数据库中的缺点是,SaveState仅在关闭应用程序窗体时或在移动应用程序中停用时才发生。如果移动应用中的应用被直接杀死而不是停用,则不会调用SaveState,并且数据可能会丢失。相反,可以随时手动将其保存到本地数据库中。