私のアプリケーションでは、最初に必要になったときにある程度の量のデータをメモリにロードし、アプリケーションの別の部分が使用したい場合に備えてそこに保持したいと考えています。いくつかの異なるActivity
'es から同じデータにアクセスできますが、すべてのユーザーが対話できるわけではありません。そのため、アプリケーションの関連部分を操作していないときは、Android が自由にデータを破棄し、必要に応じて再読み込みできるようにしたいと考えています。ユーザーが何をするかは私には予測できないので、しばらく使用されていない場合にのみ Android にデータを解放してもらいたいことに注意してください。これを行うための良いアプローチは何ですか?
class
静的にのみ使用される を作成し、静的初期化ブロックにデータをロードすることを考えました。ただし、Dalvik がこの方法で保存された静的データを破棄するかどうかはわかりません。クラスローダーについて何か読んだことがありますが、クラスのロードにどのローダーが使用されているのか、どのように破棄される可能性があるのか わかりません。おそらく誰かが...?
私が思いついた別の方法は、弱参照を使用してデータ保持クラスのインスタンスを保持することです (非静的であることは明らかです) Activity
。現時点では問題ありません。(その場合は、データをロードしたままにしておきたいです。)
データの読み込みにはコストがかかります。可能であれば、システムがメモリ不足になったとき、またはアプリケーションが終了したときにのみ破棄したいと考えています。