0

我的 Android 应用程序显示的所有数据都取自 XML 文件。我正在使用 Volley 检索数据,并使用 SimpleXML 将 XML 数据映射到使用 Volley 自定义 Request: 的对象SimpleXmlRequest

每次我刷新内容时,它都会读取整个 XML 文件并再次创建每个对象,我觉得这不是最好的方法,因为这个文件可能非常大。所以我对此有几个问题:

  1. 有没有办法“订阅” XML 文件以仅检索添加在其上的 项目,避免每次都读取整个文件?我知道 Volley 可以缓存,但在这里没有太大帮助。
  2. 是否可以使用 SimpleXML 框架进行 SimpleXml数组请求?这会有帮助吗?因为我真的不想自己解析文件......
  3. 如果没有,是否值得从 XML 切换到 Json以便我可以使用 JsonArrayRequest,或者我是否必须读取整个文件并刷新每个项目?我以前从未使用过它。
  4. 源文件中的许多项目都显示为列表, RecyclerView但是,当我再次刷新时,我必须删除它之前拥有的项目并再次添加它们,因为我一次获取所有项目,因此无法使用 RecyclerView.notifyDataSetChanged().

我读了很多书,直到发现 RxJava 和 RxAndroid 看起来很完美,但在上面集成 Volley 和 SimpleXML 看起来太难了......所以我希望你能帮助我:)

谢谢!

4

1 回答 1

0

除了非常轻量级之外,我总是使用 Json,使用像 GSON 这样的库很有趣。

为了只获取新数据,我的做法是在数据库表中包含两个字段,1 个用于 isDeleted(布尔值),1 个用于 lastModified(长 epoc 时间)。

isDeleted 字段仅适用于多个用户访问数据的情况。

于 2015-02-22T03:44:03.980 回答