Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中缓存从XML解析的对象_Android_Xml_Caching - Fatal编程技术网

在Android中缓存从XML解析的对象

在Android中缓存从XML解析的对象,android,xml,caching,Android,Xml,Caching,我有一个Android应用程序,它通过调用URL与公共数据API对话。API返回描述特定数据集的搜索结果或详细数据的XML 在我的应用程序中,我检索这些数据并将其解析为Java对象,以在ListView中显示它们 编辑:只是为了让它更清楚:在我的应用程序中,你可以搜索音乐艺术家,并获得他们的全部唱片信息。我检索发布的列表,并在列表视图中显示它们。(这里没有问题,因为每次发出搜索请求时,同一个搜索请求的结果随时都可能更改,我必须检索此数据) 现在我有一个名单,上面有披头士乐队制作的所有唱片(例如)

我有一个Android应用程序,它通过调用URL与公共数据API对话。API返回描述特定数据集的搜索结果或详细数据的XML

在我的应用程序中,我检索这些数据并将其解析为Java对象,以在ListView中显示它们

编辑:只是为了让它更清楚:在我的应用程序中,你可以搜索音乐艺术家,并获得他们的全部唱片信息。我检索
发布的列表
,并在列表视图中显示它们。(这里没有问题,因为每次发出搜索请求时,同一个搜索请求的结果随时都可能更改,我必须检索此数据)

现在我有一个名单,上面有披头士乐队制作的所有唱片(例如)。然后,我可以单击一个特定的LP并查看
详细信息
,例如发布年份和跟踪列表

我想缓存的是
详细信息
数据,我目前正在考虑哪种方法是最好的。我想到:

  • 检索一次XML数据并将XML数据存储在SQLite数据库中(这意味着每次我想再次访问数据时都必须解析数据)
  • 检索一次XML数据,对其进行一次解析,并以某种方式将序列化的JavaObject作为ByTestStream存储到SQLite数据库中。(因此,所有耗时的工作只需完成一次)

您认为最好的版本是什么?或者是否有其他更好的方法来实现缓存结果?

序列化对象将是一个快速的解决方案,但这不是有效的解决方案。每次都需要加载整个对象,而在这种情况下,如果将数据集存储到数据库中,则使用游标/查询数据处理将更为平滑


将允许您直接将数据库游标插入GUI中的列表。我建议您使用数据库方法。

谢谢!我编辑了我的问题,只是为了让我的情况更清楚一点。我没有想到将整个数据存储在本地数据库中进行缓存。我想缓存的数据本身不会显示在listview中,因此我不会以关系方式存储它,或者我会这样做吗?我将始终必须加载整个对象才能显示活动的详细信息。我想我会将数据存储在数据库中,但由于细节的复杂数据结构,这将是一个很大的负担。你会推荐这种方法吗?这取决于你使用数据的方式。若您不希望进行数据处理,并且希望按原样使用对象,那个么序列化总是一种方便且易于实现的方法。确保没有任何类没有实现可序列化接口。好的,谢谢你的建议,我会考虑一下,然后选择最适合我需要的方式。