アクティビティで大量のデータを取得しています。構成の変更時にデータを保存し、ネットワーク リクエストを減らすために再利用する必要があります。設定を共有したり、バンドルにデータを入れたりすることを考えています。共有設定はより高価な操作のようですが、よくわかりません。どのようなアプローチを取るのが良いかアドバイスをお願いします。
データを別のスレッドに保存することも可能ですが、アクティビティが破壊された場合は停止されませんか?
アクティビティで大量のデータを取得しています。構成の変更時にデータを保存し、ネットワーク リクエストを減らすために再利用する必要があります。設定を共有したり、バンドルにデータを入れたりすることを考えています。共有設定はより高価な操作のようですが、よくわかりません。どのようなアプローチを取るのが良いかアドバイスをお願いします。
データを別のスレッドに保存することも可能ですが、アクティビティが破壊された場合は停止されませんか?
構成の変更によるデータの永続化のみに関心がある場合は、どこにも永続化する必要はありません。データへの参照を静的変数に入れるだけです。すべてのアクティビティで使用できます。
ただし、アプリがバックグラウンドになり、Android がプロセスを強制終了すると、データが失われることに注意してください。その場合に対処する必要がある場合は、データをデータベースに入れる方がよい場合があります。共有プリファレンスは、単純なデータ (プリミティブ、文字列など) には問題ありませんが、構造化されたデータ (複雑なオブジェクト、リストなど) には問題ありません。
サーバーからデータを取得して DB に格納するために使用するのと同じスレッドを使用します。持っていない場合は、作成してください。
ライフサイクルの問題のため、内部でスレッド化を行わないことをお勧めしActivity
ます。伸ばしApplication
て使うActivity.getApplication
。