いくつかの静的変数を持つアプリケーションがあります。これらの変数は、DataContext という名前の独立したクラスに格納されます。これらの変数は、アプリケーションの開始時に raw ファイルから初期化されます (アプリケーションを拡張する MyApplication の onCreate() で DataContext.initConstant() という名前のメソッドが呼び出されます)。
(編集: initConstant メソッドは、AsyncTask を使用してこのデータをファイルからロードします)。
アプリケーションが一定時間バックグラウンドになったとき、またはアプリケーションが大量のメモリを使用したときに、これらの静的変数が null になります。
どうすれば防ぐことができますか?
そうでない場合、静的変数をどうすればよいですか?
さまざまなアクティビティで使用するために静的変数に格納されている他のデータがありますが、それらをクリアするか
onLowMemory()
、MyApplication で null に渡します。これらのデータが大きすぎてインテントでシリアライズできず、(何らかの理由で) データベースを使用できず、シリアライゼーションによってファイルに保存できない場合、アクティビティ間で一部のデータにアクセスできるようにする最善の方法は何ですか?