3つの質問すべてに1つずつ答えようとします。
そのためのより良い解決策はありますか?(遅延読み込み以外)
場合によります。遅延読み込みの良いところは、コンポーネントを表示するときに最初からすべてのデータを持っている必要がないことです。多くの場合、必要に応じて新しいデータを取得する方法が問題になります。
そのため、ネットワークから新しいデータをロードする場合、実際には、ロードされたデータのチャンクがどのくらい大きいかが問題になります。次のエントリの後に 1 つの新しいエントリをロードするのではなく、リストの最後に到達したときに、たとえば 20 個の新しいエントリをロードします。
もちろん、これは数値のランダムなアイデアにすぎません。ケースの速度と使いやすさの間の完璧なポイントを見つける必要があります。
そのため、Web サービスからデータのチャンクをロードしている場合、十分に高速に配信されるというのは、実に優れたコンセプトです。しかし、エントリを次から次へと読み込んでいるだけの場合 (そのため、ユーザーはほとんどの場合、新しいデータを待ちます)、これは本当に面倒なことです。
そして、画像を適切にキャッシュする方法は?
利用可能な解決策は複数ありますが、そのうちのいくつかは次のとおりです。
この質問の内容も気に入るかもしれません(そしてそれは受け入れられた回答です)、メモリ管理に関する一般的なアドバイスを提供します。
ユーザーがデバイスを回転させたときにアダプターのデータを保持できますか?
古い非推奨のアンサー:
はい、アクティビティの「インスタンス状態」を使用してこれを行うことができます。基本的に、ActivityのonSaveInstanceState()
-methodBundle
を使用すると、指定された に状態情報を入力し、それをonCreate()
-methodに渡すことができます。
に保存するデータは、Bundle
(たとえば)リストの現在の位置、またはリスト自体(サイズによって異なります)です。
はい、ローダー APIを使用します。互換性ライブラリでも利用できます。