カメラから戻ってくるときに onActivityResult が呼ばれるんですが、
そのまえに onCreate() が呼ばれている。要するに Activity が再生成されているから、
カメラ呼び出し前にメンバ変数セットしていようとも、もろともいなくなってしまったと。
以前にこんなのを書きました。
Android でカメラかギャラリーから画像を読み込んでトリミングして表示するサンプル
ただここに盲点が有りました。
Samsung Galaxy シリーズという盲点がぁがぁ・・・!!(大げさ)
※2013/01/30 21:33 追記
Google+ でご指摘頂きました。
Activity が破棄され、メンバ変数が初期化されてしまうような場合、
Activity#onSaveInstanceState(Bundle outState) で Bundle に メンバ変数として保持していた値を put() 。
その後復帰後に Activity#onRestoreInstanceState(Bundle savedInstanceState) で Bundle から 取り出して再度メンバに設定してあげるようです。
Activity のライフサイクル大事!!
ご指摘ありがとうございます!!
AndroidManifest にこう書いてます。
android:configChanges="keyboardHidden|orientation"なにげにこれだけでも大抵動いちゃうんですよね。
HTC J butterfly HTL21 も特に問題ありませんでした。
ここで登場 Samsung Galaxy SIII SC-06D。
いろいろテストしていく中で、写真を取る向きを検証していました 。
そして事は起こった。
この向き!端末の下を左に持ってきて写真を撮る。
この状態だと、configChanges の orientation には引っかからないようです。
他の3方向は問題なし。まあどうするかというと、 screenSize も追加しろと。
ここに書いてありました。
Handling the Configuration Change YourselfAndroid 3.2 (API level 13) 以上を対象とする場合は、screanSize もまた変更されるようです(向き変わってるだけだろ・・・・・)。
http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange
というわけで Android Manifest にはこう書きます。screenSize 追加。
ちなみに、 GALAXY SII WiMAX ISW11SC でも同じ現象でした。