2011-01-18 28 views
6

私はAndroidアプリの状態を維持していて、onRetainNonConfigurationInstanceを見つけました。 documentationを読みながらしかし、私はこの文に気づい:この機能は、最適化として純粋に呼ばれているonRetainNonConfigurationInstanceを実装する必要がありますか?

を、あなたはそれが呼び出されているに頼ってはいけません。

だから、いつこのメソッドを使用するのが本当に意味があるのでしょうか。私が呼び出すことに頼ることができない場合は、とにかく状態を転送するための別のメカニズムが必要になります(私の場合はシリアル化されます)。だから私がパフォーマンスヒットを経験しない限り、なぜ私はonRetainNonConfigurationInstanceに行かなければならないのですか?

呼び出されることが保証されていれば、私はそれを使用したいと思いますが、そうでない場合はかなり役に立たないようです。

何か不足していますか?いつこのメソッドを使いますか?どのようにネットワーク接続やそのようなものを維持しますか?

ありがとうございます!

答えて

12

ドキュメントが意味することは、アクティビティがすぐに再作成されない場合があります。その場合、onRetainNonConfigurationInstance()は呼び出されません。このメソッドを使用してデータを保持することはできません。これは、構成変更中に作成するコストが高いオブジェクトを転送する場合にのみ使用されます。

+0

ああ、いいですね!だから私はオリエンテーションの変更にそれを使用することができ、この場合に呼び出されることに依存しています。 – Philipp

+1

これは遅れていますが、これに関する詳細を知りたい方は、CommonsWareの回答を読むことをお勧めします:http://stackoverflow.com/questions/4285877/which-one-to-use-onsaveinstancestate-vs-onretainnonconfigurationinstance –

関連する問題