0

startActivityForResult() を使用して開始された一部のアクティビティで setResult() および finish() を呼び出すと、一貫性のない動作が見られます。ここでの他の質問から、予期しない動作にはさまざまな理由が考えられるようです。アクティビティが結果自体のアクティビティを開始する可能性があることを考えると、結果のアクティビティを開始してそれを送り返すプロセス中に何が起こっているかを完全に把握するためにデバッグするときに、どの変数を調べる必要がありますか?

具体的には、次の表示方法を知りたいです。

  • 開始アクティビティに戻ったときの結果の処理方法
  • finish() が呼び出されたときに結果が送信される場所 (および場合)
  • 現在設定されている結果とは

私はすでに見ています:

mResultCode
mResultData
mParent

しかし、彼らは自分自身で十分な情報を提供していません。アプリケーションの結果メカニズム全体の状態が知りたいです。

4

1 に答える 1

1

リクエストコード ...

startActivityForResult()を呼び出すときは、リクエスト コードを指定します。リクエスト コードを使用すると、特定のアクティビティ結果を特定の開始リクエストと一致させることができます。具体的には、onActivityResult()で、その比較を行うためのリクエスト コードが渡されます。

結果コード ...

結果コードは、開始されたアクティビティから開始アクティビティに大まかなメッセージングを戻す方法にすぎません。つまり、開始されたアクティビティは、 onActivityResult()で開始アクティビティに返されるsetResult(int)を呼び出すことによって結果コードを設定できます。繰り返しますが、これは通常、SUCCESS や FAIL などの大まかなメッセージングを実行するために使用されます。

結果データ ...

最後に、より細かいデータを返すには、結果コードとインテントの両方を取るsetResult(int, Intent) のバリアントを使用します。インテントを構築するときに、開始アクティビティに戻したいエクストラを追加します。

于 2012-06-27T19:48:59.143 に答える