2011-12-17 4 views
1

私のアプリケーションが洗練され、主なアクティビティがメモリ内に保持され始めたとき(私は(間違って))onSaveInstanceStateonRetainNonConfigurationInstanceに変更すると、デバイスメモリを保存するためにアプリケーションが強制終了されたときには、onRetainNonConfigurationInstanceは呼び出されません。だから私はonSaveInstanceStateに戻らなければなりません。数十のオブジェクトによって分散された膨大な量のデータを処理する適切な方法は何ですか?これらすべてのオブジェクトのシリアル化を実装する必要がありますか(Parcelable?)、またはすべてのデータをServiceスレッドに入れても、それが殺されないことを望むでしょうか?ベストプラクティスは何ですか?多くのデータとオブジェクトを持つonSaveInstanceStateの使い方

答えて

0

私は醜いだけ受け入れ可能な解決策で終了しました:私はApplicationオブジェクトにすべてのデータを移動した

  1. 私は前景を作成しましたServiceすべてのアクティビティが殺されてもアプリケーションオブジェクトが殺されないようにしました。
1

onRetainNonConfigurationInstanceは推奨されていません。これで、new Fragment APIを使用するほうが簡単になりました。基本的にFragmentクラスを拡張してsetRetainInstance(true)と呼び出し、ここに保存したい変数をすべて入れてください(もう少し複雑ですが、the documentationは非常に明確で、いくつかのサンプルを提供しています)。

API 11で導入されましたが、Android互換パッケージを通じて古いプラットフォームで利用できます。

関連する問題