web-dev-qa-db-ja.com

startActivityForResult()とstartActivity()の違いは?

startActivityForResult()startActivity()の違いは何ですか?

いつ、何のために、それぞれを使用する必要がありますか?

48

startActivity

アプリケーションを起動するように、アクティビティを開始します。たとえば、ホーム画面とユーザー情報画面を備えたアプリがあります。ユーザー情報ボタンを押すと、これでユーザー情報アクティビティが開始されます。

startActivityForResult

アクティビティを開始して、見返りに何かを期待します。たとえば、ユーザー情報画面で、プロフィール写真をアップロードできます。明示的な目標でギャラリーアクティビティを開始し、優先画像でURIを取得します。結果を取得するために文字通りこのアクティビティを開始します(写真。実際に結果を取得するための技術的な方法はいくつかありますが、マニュアルでは非常に明確です。

36
Nanne

startActivityは、新しいアクティビティを開始し、そのアクティビティがいつどこで終了するかを気にしません。

明らかに

startActivityForResult開始されたアクティビティが終了することを決定したときにコールバックを待機します

startActvity()は、startActivityによって開始された新しい子アクティビティから親アクティビティへの結果の取得を心配することなく、開始するアクティビティを開始します。

startAcitvityForResult()はアクティビティから別のアクティビティを開始し、startAcitvityForResult()によって新しく開始された子アクティビティからデータを取得し、それを親アクティビティに返すことを想定しています。

このリンクを確認してください- Activity#startActivityForResult(Intent, int)

24
Randroid