インテントを開始すると、ライフサイクルの前に呼び出されるCamera
ことに気付きました。onActivityResult
onResume
fragment
onActivityResult
また、 after が呼び出されていることに気付きましたonStart
。
しかし、ここに奇妙な部分があります。変数 fileUri == "some image path" があります。この変数は
- onStart では NOT NULL。
- onActivityResult の NULL
- onResume で再び NOT NULL
logCat を参照
12-03 14:39:42.418: D/Fragment1(29220): onStart fileUri: file:///mnt/sdcard/OPS_IMAGES/IMG_20121203_143933.jpg
12-03 14:39:42.463: W/PhoneWindow(29220): Previously focused view reported id 2131034140 during save, but can't be found during restore.
12-03 14:39:42.463: D/Fragment1(29220): onActivityResult fileUri is NULL!!!
12-03 14:39:42.468: D/Fragment1(29220): onResume fileUri: file:///mnt/sdcard/OPS_IMAGES/IMG_20121203_143933.jpg
最悪の部分は、これが 50% の確率でしか発生しないことです。別の 50% onActivityResult は fileUri 値に問題なくアクセスできます...
これをどのようにデバッグすればよいですか?
注: 簡単にするために、onResume、onStart、onActivityResult メソッドのコードは含めませんでした。これらは、変数チェックとログ呼び出しを伴う基本的な方法です。必要に応じて、質問を編集してこれらのメソッドを追加します。
注 2: Google サポート ライブラリを使用して、古い API バージョンのフラグメントをサポートしています。