在Android中缓存从XML解析的对象
我有一个Android应用程序,它通过调用URL与公共数据API对话。API返回描述特定数据集的搜索结果或详细数据的XML 在我的应用程序中,我检索这些数据并将其解析为Java对象,以在ListView中显示它们 编辑:只是为了让它更清楚:在我的应用程序中,你可以搜索音乐艺术家,并获得他们的全部唱片信息。我检索在Android中缓存从XML解析的对象,android,xml,caching,Android,Xml,Caching,我有一个Android应用程序,它通过调用URL与公共数据API对话。API返回描述特定数据集的搜索结果或详细数据的XML 在我的应用程序中,我检索这些数据并将其解析为Java对象,以在ListView中显示它们 编辑:只是为了让它更清楚:在我的应用程序中,你可以搜索音乐艺术家,并获得他们的全部唱片信息。我检索发布的列表,并在列表视图中显示它们。(这里没有问题,因为每次发出搜索请求时,同一个搜索请求的结果随时都可能更改,我必须检索此数据) 现在我有一个名单,上面有披头士乐队制作的所有唱片(例如)
发布的列表
,并在列表视图中显示它们。(这里没有问题,因为每次发出搜索请求时,同一个搜索请求的结果随时都可能更改,我必须检索此数据)
现在我有一个名单,上面有披头士乐队制作的所有唱片(例如)。然后,我可以单击一个特定的LP并查看详细信息
,例如发布年份和跟踪列表
我想缓存的是详细信息
数据,我目前正在考虑哪种方法是最好的。我想到:
- 检索一次XML数据并将XML数据存储在SQLite数据库中(这意味着每次我想再次访问数据时都必须解析数据)
- 检索一次XML数据,对其进行一次解析,并以某种方式将序列化的JavaObject作为ByTestStream存储到SQLite数据库中。(因此,所有耗时的工作只需完成一次)
您认为最好的版本是什么?或者是否有其他更好的方法来实现缓存结果?序列化对象将是一个快速的解决方案,但这不是有效的解决方案。每次都需要加载整个对象,而在这种情况下,如果将数据集存储到数据库中,则使用游标/查询数据处理将更为平滑
将允许您直接将数据库游标插入GUI中的列表。我建议您使用数据库方法。谢谢!我编辑了我的问题,只是为了让我的情况更清楚一点。我没有想到将整个数据存储在本地数据库中进行缓存。我想缓存的数据本身不会显示在listview中,因此我不会以关系方式存储它,或者我会这样做吗?我将始终必须加载整个对象才能显示活动的详细信息。我想我会将数据存储在数据库中,但由于细节的复杂数据结构,这将是一个很大的负担。你会推荐这种方法吗?这取决于你使用数据的方式。若您不希望进行数据处理,并且希望按原样使用对象,那个么序列化总是一种方便且易于实现的方法。确保没有任何类没有实现可序列化接口。好的,谢谢你的建议,我会考虑一下,然后选择最适合我需要的方式。