1

我的应用程序需要在手机上存储数据,但我不确定哪种方法更有效。我不需要搜索数据或类似的东西。我只需要能够在应用程序关闭时保存应用程序的当前状态,并在它备份时恢复。有 1mb 到 10mb 的数据需要保存。

基本上有一堆包含数据的自定义类,现在我将它们作为可序列化的,并将每个类保存到一个文件中。我有什么理由改变它以将其存储在 SQLite 中吗?

4

3 回答 3

0

如果您在哪里使用 sqlite,您可以随时保存,并且知道如果保存数据的应用程序/活动突然被操作系统杀死,那么数据库中的内容几乎是最新的。其他我看不到的以及将 sqlite 用于您的用例的明显理由。此外,对于 sql 方法,您有一个明确的方法来在以后更改域对象的结构并将数据从旧版本的数据库迁移到新版本的数据库。这也可以使用序列化对象来完成,但是需要同时复制新旧对象。对我来说,这听起来非常可怕和混乱,特别是考虑到您可能需要从版本 x 到 y,所以如果您需要更新域对象,最终可能会遇到一些非常棘手的问题。

于 2012-04-13T17:33:18.827 回答
0

您在问题中提到数据仅用于保存应用程序的状态,因此我最初的反应是将其保留在设备上,特别是因为您提到文件大小不会超过 10MB,这相当合理的。

所以我对你的回答是在设备上保持原样。如果您将来对信息的使用发生变化,您应该重新考虑这种方法,但现在它是完全合乎逻辑的。

于 2012-04-13T17:33:25.543 回答
0

如果您只保存序列化类,则可以使用本线程中讨论的 ORM 映射器。这为您节省了编写自己的映射器的不便,并且可以轻松扩展到新类。此外,如果您的要求发生变化,您可以查找数据。

将系统更改为 SQLite 的唯一原因是更舒适,并且可能是更简单的系统。例如,现在您必须检查文件是否存在,解析内容等,如果您使用 SQLite,则不必验证数据的完整性,Android 也可以帮助您一点。您可以将这些数据用于其他原因,例如在 ListView 中显示它们。

于 2012-04-13T17:33:57.353 回答