1

StartActivityForResult()でアクティビティを開始し、結果を実行したときにこの新しいアクティビティの状態を保存することはできますか?
例:
アクティビティ A が StartForResult によってアクティビティ B を開始し、アクティビティ B がジョブを実行して適切な値を返す場合、B OnSaveStanceStateでアクティビティの状態を保存できますか?

4

2 に答える 2

0

それは可能ではありません。アクティビティのライフサイクルは、アクティビティが終了すると停止します。OnSaveInstanceStateは、アクティビティが終了したときに呼び出されません。アクティビティAの現在の状態を取得し、それを新しいアクティビティBに渡して、古い状態を再構築することができます。

于 2013-03-20T15:43:52.627 に答える
0

いいえ、実際にOnSaveInstanceStateはこの場合は呼び出されません。

OnSaveInstanceStateメモリ不足、向きの変更などのために、アクティビティが OS によって強制終了された場合に呼び出されます。

ただし、 を使用してBを開始するため、終了する前にを呼び出してBStartActivityForResultの状態をいつでも手動で保存できます。Bのどのような状態を保存する必要があるかは、すべてあなた次第です。次に、Aが状態を取得し、後で使用できます。Intent.PutExtra

于 2013-03-20T18:34:54.263 に答える