0

活動のライフサイクルについてはたくさんの質問がありますが、適切なものが見つかりませんでした。

1人のユーザーの車を表示するアクティビティ(Aという名前)があります。内部的には、アクティビティuserIdは変数に格納され、リスト内のユーザーの車をロードします。userId以前の活動から来ています。

ユーザーがAの「新車」ボタンを押すと、アクティビティBが起動します。ユーザーが車のフォームに入力し、保存を押します。ユーザーの新しい車はデータベースに保持されます。

この時点で、BからアクティビティAに戻るには、どのメソッドを呼び出す必要がありますか?

  1. 電話する必要がありますfinish()か?その後、ユーザーはAに戻り、Bは破棄されます。しかし、Aが以前に破壊された場合はどうなりますか?Aが存在しない場合、どのように復元できuserIdますか?
  2. たぶん、意図的に余分に呼び出しstartActivity(A)ますuserIdか?しかし、それでは、私は新しいアクティビティを作成しています!
  3. 別のオプション?

誰かがこれらの概念を明確にするのを手伝ってくれると確信しています。:)

編集:

詳細については、承認された回答のコメントを参照してください。

4

1 に答える 1

2

戻るにはfinishを呼び出す必要があります。

1)Aが破壊された場合、finish()を呼び出さない限り、Androidによって再作成されます。その状態を適切に保存すれば、まったく問題はないはずです。

2)これにより、インテントに追加するフラグに応じて、アクティビティAがスタックの一番上に戻るか、新しいアクティビティが作成されます。

3)アクティビティAでstartActivityForResultを使用してBを開始し、ユーザーに値を入力させ、結果をBに設定して、finish()を呼び出します。

于 2012-07-06T07:32:36.127 に答える