0

奇妙な問題があります。以前の投稿で質問したように、アプリにはNETからのデータがたくさんあります。問題は、そこにたくさんのテキストや画像があるので、ユーザーがリストアイテムをクリックするまで待たせることはできますが、戻るボタンをクリックするまで待たせたくないということです。

すべてのデータを再ダウンロードしたくないという意味で。ダウンロードしたデータ1ceは残ります。

正しい方法はどれですか?

1.すべてのデータを格納する特別なクラスを使用します...そして戻るたびに変数を使用します。

また

2.そのようなデータをクラス自体に保存するための特定のインスタンス保存メソッドはありますか...その場合は、戻るをクリックしたときに保存されたインスタンスアクティビティを呼び出す方法を教えてください。

4

2 に答える 2

1

「ユーザーが戻るボタンをクリックする」ことで、前のアクティビティが表示され、スタックの一番上に戻ることがわかります(アクティビティのライフサイクルを参照)。

これは、このアクティビティが再度作成されるのではなく、再開されることを意味します(他のアプリケーションがメモリを必要とするためにコアによって強制終了された場合を除く)。そのため、そのフィールドと属性はそれらの値を保持します。したがって、一部のアクティビティフィールドにデータを保存すると、それらの値を取得して、再ダウンロードせずに表示できる場合があります。

もちろん、アクティビティが最初に開始された場合にNPEを回避するために、これらのフィールドにアクセスする前にこれらのフィールドをテストする必要があります。

于 2009-12-31T09:54:09.943 に答える
0

Activityあなたがそれを始めたり、それに戻ったりするとき、あなたはすでに存在するものに頼るべきではありません。

ダウンロード済みのデータのキャッシュに関するこの前の質問を確認してください:
画像をキャッシュするのに理想的な場所はどこですか?

Activityユーザーが;を入力したときに、UIに一時停止がないようにする必要があります。すべてのダウンロードをバックグラウンドスレッドで実行し、ユーザーに何らかの進行状況インジケーターを表示する必要があります。これを行わず、UIスレッドが遅いダウンロード(約15秒)によってブロックされた場合、ユーザーには「アプリケーションが応答していません」ダイアログが表示され、アプリケーションを強制終了するか、待機を続けるかを尋ねられます。良くない。

于 2009-12-31T14:37:19.367 に答える