これらすべてのメソッドにログを追加することで、自分自身に疑問を投げかけることをほとんどテストできます。2 つ目は、再作成時に onRetainNonConfigurationInstance() が呼び出されます。
このメソッドは、ActivityThread クラスでアクティビティを破棄するために使用され、次のコード行があります。
3424try {
3425 r.lastNonConfigurationInstances
3426 = r.activity.retainNonConfigurationInstances();
3427} catch (Exception e) {
3428 if (!mInstrumentation.onException(r.activity, e)) {
activity.retainNonConfigurationInstances(); その後、 onRetainNonConfigurationInstance() をトリガーします
また、docsを見ると、重要な行がいくつかあります。
アクティビティの新しいインスタンスは、このインスタンスの onDestroy() が呼び出された直後に常に作成されます。特に、この間 (返されたオブジェクトに関連するアクティビティがない場合)、メッセージはディスパッチされません。ここで返されるオブジェクトは、そこで説明されているように、次のアクティビティ インスタンスの getLastNonConfigurationInstance() メソッドから常に利用できます。これらの保証は、アクティビティがこの API を使用して、古いアクティビティ インスタンスから新しいアクティビティ インスタンス、ロードされたビットマップからネットワーク接続、均等にアクティブに実行されているスレッドに広範な状態を伝達できるように設計されています。