2012-02-18 16 views
1

私のアクティビティonCreateメソッドでは、作成してIntent(カメラを起動する)とstartActivityForResultを呼び出します。問題は、onCreateが2回呼び出され、インテントが2回呼び出されることです。どちらもonActivityResultで受信されます。onCreateからのAndroidの起動インテント

ここでは何が起こっていますか?アクティビティの読み込み時に自動的にインテントを起動するにはどうすればよいですか?私はonStartでstartActivityForResultを呼び出そうとしましたが、まだ2回呼び出されています。

ありがとうございました。

+1

いくつかのコードを投稿できますか? –

答えて

2

onCreateは、通常、あなたの例のように別のアクティビティから戻るときに呼び出されます。 Googleのアクティビティライフサイクルドキュメントは、この点で少し誤解を招く(onCreateはアプリのライフサイクルで一度しか呼び出されないと思うようになります)。

あなたの最善の策はあなたの州をonSaveInstanceStateに保存することです。 cameraCalledフラグを追加し、ループを防止するためにそのフラグをonCreateにチェックしてください。

0

onCreateは、返すときに呼び出される場合と呼び出さない場合があります。

メモリの状態や、OSがあなたの活動を殺したかどうかによって異なります。両方のシナリオを考慮する必要があります。 onCreateから呼び出すときはおそらく実行できません。返品時に呼び出される注文の詳細についてはこれを参照してくださいState of Activity while in onActivityResult question

関連する問題