0

为了获取我的应用程序的数据,我使用 Jackson 将 Json 文件解析为(列表)自定义对象。当我启动我的应用程序时,我检查是否有可用的新 Json 文件并询问用户是否要下载它,否则我使用“旧”Json 文件。但是每次我启动我的应用程序时,我都会解析 Json。然后我使用应用程序类来保存我的对象列表并在需要时访问我的数据,大多数时候我只需要一个对象。

从具有多层嵌套对象的巨大列表中,我创建了一个简单的“平面”自定义对象数组列表,我只将创建列表视图所需的数据(名称、id、第二个文本和图片的 url)放入其中。当点击某些东西时,我使用 id 来获取所有数据。

每次解析整个 Json 文件非常耗时,并且使我的应用程序的启动时间变长。当然,这很糟糕。并且在应用程序类中保存的大量自定义对象会占用我设备的大量内存,有时在某些使用后类会被杀死,我需要再次重新解析。

有没有一种方法我不需要重新解析我的所有数据?我希望有一个这样的过程:

  • 新的 Json 文件
  • 第一次将总 JSON 解析为多层自定义对象列表
  • 为列表视图创建简单列表
  • 删除/清除大列表
  • 一些聪明的方法来只得到一件巨大的物品,而不把整个清单留在我的记忆中。(也许与杰克逊有关)。
  • 在销毁应用程序时,可能会保存简单列表,我读过一些关于 parceable 或 serializable 的内容?

任何人都知道如何实现这一目标?或者有其他很棒的想法?

4

3 回答 3

1

Jackson 有一个流媒体 API。您还可以在 AsyncTask (在后台)中解析 json 并在新数据准备好后更新您的用户界面

于 2012-07-26T22:14:30.403 回答
0

我可能会根据 Android 平台的设计方式将数据存储在 SQLite 数据库中。

于 2012-07-26T22:00:28.747 回答
0

作为流式处理 Jackson API(速度非常快,但仍需要扫描大部分内容)的替代方案,也许您可​​以将内容保存在不同的文件中,每个条目一个?或者,如果有一种方法可以将事物分组,在多个文件中,每个文件都有一些子集?

当然,如果你真的有大量的条目,那么按照 Bruce 的建议使用 SQLite 是很有意义的。

于 2012-07-27T18:05:57.593 回答