アクティビティに複雑なデータオブジェクトがあります。ユーザーがそのオブジェクトのデータを編集したい場合は、フラグメントのようなフローティングダイアログが表示されます。このフラグメントには、データオブジェクトの一部への参照があります。ユーザーは、このフラグメントからそのデータをライブ編集します。たとえば、いくつかの簡単なテキスト編集。
ユーザーがこのデータを編集しているときに、構成が変更されます(有名な向きの変更)。変更すると、以前と同じように、フローティングフラグメントを含むすべてのものがシステムによって自動的に再作成されます。
理由はわかりませんが、AndroidはActivtyを再起動する必要がありましたが、後で手動で作成したものを保存して再読み込みするのはなぜですか?しかし、それは別の質問です。
したがって、フラグメントの新しいクローンが戻っている間、データオブジェクトへの「接続」は失われています。そのデータオブジェクトもなくなり、すべてのユーザー編集が失われた新しいオブジェクトがあるためです。構成変更直前の状態を保存し、後で元に戻したい。
アクティビティは、ユーザーによって起動されているか(最初から開始する必要があります)、システムによって構成で再作成されているかをどのように判断できますか。変更(保存された状態をリロードする必要があります)?
その後、フラグメントのデータオブジェクトへの接続を再確立して、ユーザーが何も起こらなかったように編集を続行できるようにするにはどうすればよいですか?