android:如何加载大量数据(xml文件)并在整个应用程序中保留它

时间:2014-08-19 19:39:47

标签: android xml loading bigdata storing-data

我正在设计一个应用程序,它涉及解析大型XML(包括大量文本)并保持整个应用程序中的序列化数据可访问。我打算有一个数据对象,它将保存数据,一些类可以访问数据。我总是需要只显示部分文字。

是的,我的问题与此问题非常相似question也许是同样的问题,但我不想使用此解决方案,如果可能的话。

我想知道如何加载数据,加载数据以及如何在整个应用程序中保持可访问性。每次在onCreate()方法中加载它都是不可能的,例如当屏幕方向改变时。

对我来说最好的方法是,如果我可以将xml文件加载(解析)到一个对象中,并且该对象在整个应用程序中都可以访问,但我不知道在哪里,如何加载它以及如何保持它可以在整个申请中访问。这个对象拥有我需要的一切。

一些可能的解决方案:

  • Singleton(这会将数据加载到一个对象中)使用this或其他什么?
  • 使用像there这样的SQLite解决方案(与上面相同的链接)(我不想使用它)
  • 使用延迟加载(加载我实际需要的部分文本)(我也不想使用它)

有人会说什么是最好的解决方案?并描述如何做到这一点?

(对不起我的英文)

  • 编辑1: xml结构:

    < root >
         < some elements >
         < /some elements >
    
         < element with lot of text >
             text.....
         < /element with lot of text >
    
         < element with lot of text >
             text.....
         < /element with lot of text >
              .
              .
              .
         < element with lot of text >
             text.....
         < /element with lot of text >
    < /root >
    

如果有帮助的话。一个元素中的文本通常包含5000到15000个字符。

3 个答案:

答案 0 :(得分:2)

单身人士有各种普遍的缺点;我个人建议不要将它们用于任何非无状态且独立于其他任何东西的东西(包括从中加载XML的文件或网络)。

然而,与您的应用程序有关的主要问题是Android可以随意启动和停止您的应用程序。这意味着,您的单身人士需要经常重新创建,例如你需要经常解析你的数据(重启不会保留单身!)。

在不了解您的XML的情况下,很难推荐一种特定的方法;如果适用,请在数据库中执行初始解析,这样您就可以轻松地从数据库接收单个值,而无需进行额外的解析。

答案 1 :(得分:0)

扩展Application是一种解决方案。您可以使用this示例。

答案 2 :(得分:0)

我决定使用SQLite数据库。我读了很多关于Singleton的讨论,有些是负面的(很难测试,有些同步的麻烦)。因此,为了避免这些问题,我将实现将xml文件解析为DB。