0

大きな XML (大量のテキストを含む) を解析し、シリアル化されたデータにアプリケーション全体でアクセスできるようにするアプリを設計しています。データを保存し、一部のクラスがデータにアクセスできるデータ オブジェクトを用意するつもりです。テキストの一部だけを常に表示する必要があります。

はい、私の問題はこの質問と非常によく似ていますが、同じ問題かもしれませんが、可能であれば、この解決策を使用したくありません。

データをロードする方法、データをロードする場所、およびアプリケーション全体でデータにアクセスできるようにする方法を知りたいです。onCreate()画面の向きが変わったときなど、メソッドで毎回読み込むことはできません。

私にとって最善の方法は、xmlファイルを1つのオブジェクトにロード(解析)でき、このオブジェクトがアプリケーション全体でアクセス可能である場合ですが、どこで、どのようにロードするか、アプリケーション全体でアクセスできるようにする方法がわかりません. このオブジェクトには、必要なものがすべて含まれています。

考えられる解決策:

  • シングルトン (これは 1 つのオブジェクトにデータをロードします)これまたは何か他のものを使用しますか?
  • そこのような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 >
    

それが役立つ場合。通常、1 つの要素のテキストには 5000 ~ 15000 文字が含まれます。

4

3 に答える 3

2

シングルトンにはさまざまな一般的な欠点があります。個人的には、ステートレスではなく、他のすべてのもの (XML をロードするファイルやネットワークを含む) から独立していないものには、それらを使用しないことをお勧めします。

ただし、アプリケーションに関する主な問題は、Android がアプリケーションを自由に開始および停止できることです。つまり、シングルトンを頻繁に再作成する必要があります。たとえば、データを頻繁に解析する必要があります (再起動はシングルトンを保持しません!)。

XML について何も知らなければ、特定のアプローチを推奨することは困難です。該当する場合は、データベースへの初期解析を実行して、追加の解析なしでデータベースから個別の値を簡単に取得できるようにします。

于 2014-08-19T19:52:59.937 に答える
0

私は SQLite データベースを選択しました。シングルトンに関する多くの議論を読みましたが、否定的なものもありました (テストが難しく、同期の問題もあります)。問題を回避するために、xml ファイルの解析を DB に実装します。

于 2014-08-20T09:49:04.023 に答える
0

拡張Applicationは 1 つのソリューションです。この例を使用できます。

于 2014-08-19T21:06:39.103 に答える