2016-12-04 4 views
1

私のアプリケーションで重要なことを達成するのが難しく、onActivityResultを管理しています。startActivityForResultとonActivityResultを管理します

たとえば、私は3つのアクティビティを持っています。

アクティビティ他の2つのアクティビティからのコールバックを取得する必要があり、その実行方法startActivityForResult()

アクティビティアクティビティCを開始する必要があるアクティビティAにいくつかの値を返す必要があるだけでなく、いくつかの場合にはB終了します。

活動Cが活動Bから呼び出されるが、私は活動A

に値を返す必要があるので、私の質問があり、それは活動BからstartActivityForResult()に何とか可能であり、それは活動Aに指していますか、他の提案は良いでしょう。

答えて

1

は、次の操作を行うことができます。

  • 通話B startActivityForResult()経由
  • はその作業を行います。その作業を終了し、setResult()finish()を呼び出すことによってにその結果を送信する
    1. B CstartActivityForResult()を呼び出し
    2. B:それは完了だときは2つの可能性があります。 Cが行われたときに今、あなたはsetResult()finish()を呼び出すことによってBにあなたの結果を送信
  • BはそのonActivityResult()で結果を取得し、現在は再びsetResult()finish()を呼び出すことにより、にそれを渡すことができます。

私はこれが理解できたと思う。それ以上の説明が必要な場合は、コメントしてください。

+0

アクティビティCで 'startActivityForResult()'を呼び出すときに、アクティビティBの終了をエスケープする必要があると思いますか? –

+0

いいえ、実際にあなたの結果を送り返しているだけです。あなたがCで終わったら、あなたはBに結果を送ることができ、そこからAに送ることができます。 – Aenadon

関連する問題