Android 与 Kotlin 存储自定义类的最佳方式

时间:2021-01-03 14:32:10

标签: android kotlin android-database android-storage

这是我第一次需要永久存储一些数据,所以在继续之前我需要一些建议。我读过有多种方法可以在 Android 设备上存储数据:

  • 内部存储
  • 共享偏好(但如果我理解它只是用于像选项一样的简单数据)
  • 共享存储(但我不需要在其他应用之间共享数据)
  • 数据库

我不明白在第一个和最后一个之间哪个对我来说最好。

我的情况

我有一个带有标题、副标题、封面图片的书籍列表,每本书都包含一个带有标题、可选图像(如果可能是音频)和其他内容的卡片列表。

所以,我必须存储一个自定义类的数组列表,其中包含另一个自定义类的另一个数组列表和一些文本/图像

我应该采取哪种方法?

谢谢

1 个答案:

答案 0 :(得分:1)

坦率地说,案例描述太多,无法提供明智的建议(因此问题应该结束)。

但如果您有疑问,那么安全/默认选择是数据库。在某些情况下,它可能会带来很大的开销(例如,将整个数组列表序列化为 blob 并存储为单个文件就足够了),但您不太可能将自己陷入困境。

添加(评论后)

使用数据库时,您不直接存储对象(因为 sql 数据库存储的是“关系”,您可以将其视为“行集”,而不是对象)。相反,您有一些代码(自定义的或来自库的)将对象转换为一行(或多行)以进行存储,还有一些代码将其转换为另一种方式。

如果您想存储实际对象,那么序列化到文件几乎是唯一的方法。

相关问题