0

実際、私はWebからXMLをフェッチし、それを解析して画面に表示しています。私が得ている問題は、アクティビティが呼び出されるたびにアクティビティがWebからデータを読み込もうとすることです(実際、私のモバイルアプリではサーバーに頻繁にアクセスする必要があります)。したがって、以下の解決策を探しています。

On Re-launch of an activity, the data from web should not be loaded again. 
creating a class that i can use to transparently make application faster by
selectively caching items in memory.  And thus, making users very happy and 
This class can even apply individual refresh times to each cached item.

だから、私はデータをキャッシュなどに保存する必要があると思います。

そのようなことを実装する方法/技術はありますか?アクティビティの再起動時に毎回ロードする必要がないようにします。

4

3 に答える 3

1

特定の間隔でバックグラウンドでデータをロードするためにサービスを使用してみることができます。

于 2010-11-12T06:34:20.643 に答える
1

私がやったことは、テーブルを作成し、それを "Table_Web_XML" と呼び、特定の Web データを格納するための適切なフィールドを作成することです。

アクティビティを開始するとき、データベースにデータがあるかどうかを最初に確認します。テーブルが空の場合 (アクティビティが初めて読み込まれることを意味します)、Web から読み込み、画面に表示してデータベースに保存します。

一方、テーブルにデータがある場合は、それを画面にロードし、バックグラウンドでサービスを開始して、Web 上で変更があった場合にデータベース テーブルを更新します。これが行うことは、システム応答の観点からです。アクティビティが繰り返し開かれると、データは常に高速にロードされ、バックグラウンド サービスは後続の要求で新しいコンテンツと最新のコンテンツを保証します :) . それが役に立てば幸い。

于 2010-11-12T06:40:20.053 に答える
1

この提案でパフォーマンスがどうなるかはわかりませんが、アクティビティが再起動するたびに XML ファイルをフェッチするのを避けたい場合は、内部ストレージに保存するのが最も簡単です。アクティビティが (再) 開始されると、Web からファイルを取得する前に、ファイルがローカルに存在するかどうかを確認することから始めます。

もちろん、XML ファイルが「古くなっている」かどうかを判断するロジックが必要になります (ファイル名と最後にフェッチされた日付を含む単純なデータベース テーブルを作成することもできます)。ファイルが不要になったときにファイルを削除するためのクリーンアップ ロジック。不要なスペースがいっぱいにならないようにします。

于 2010-11-12T08:34:58.823 に答える