17

「A」と「B」の 2 つのアクティビティを持つアプリがあります。

「A」はstartActivityForResult()「B」を生成するために使用します。つまり、「B」を待ちます。ここで、「B」が前景にあるとします。Android システムは、「B」を破壊せずにアクティビティ「A」を破壊できますか? (「はい」の場合、たとえばユーザー入力の後などに「B」が終了したときに、アクティビティ「A」を再作成し、Android システムによって再びフォアグラウンドに配置する必要があります。また、「A」を記憶して以前の UI ステータスに復元する必要があります。 )

プロセスの強制終了について話しているのではないことに注意してください(これは別のケースです: プロセスが強制終了された場合、すべてのアクティビティが強制終了され、 onDestroy () が呼び出されないか、呼び出されることが保証されません)。問題は、サブアクティビティの結果を待っている間に onDestroy() が可能かどうかだけです。

4

1 に答える 1

19

アクティビティ B が終了するまでにアクティビティ A が終了した場合、次のことが保証されます。

  1. A再作成されます。
  2. A結果をお届けします。

つまり、ユーザーが次にアクセスしたとき/必要になったときに A が再作成され、その時点で保留中の結果が (B から A に) 配信されます。

また、これが、任意のコールバック オブジェクトではなく、整数のリクエスト コードを使用して単一のアクティビティ コールバックを介して結果を返す必要がある理由にも注意してください。

于 2012-04-25T16:06:51.530 に答える