Activity#onRetainNonConfigurationInstanceについて

いまいちよく分かってなかったのでメモ。
といっても必要なことは全てAPIリファレンスに書いてあるんですが…

onRetainNonConfigurationInstanceは画面の回転などでActivityが再生成されるときに、新しいActivityのインスタンスへデータを受け渡すときに使います。
なんでonSaveInstanceStateとは別にこんなメソッドが用意されているかというと、Activityの新しいインスタンスが直ちに再作成されることが分かっている時に、Bundleを介さずに状態を復元するためです。

onRetainNonConfigurationInstanceが呼ばれたときに好きなオブジェクトを戻り値として返せば、そのあとgetRetainNonConfigurationInstanceメソッドで最後に保存したオブジェクトを取得できます。