kiedy zaczynam intencję Camera
, zauważyłem, że onActivityResult
jest wywoływane przed onResume
w cyklu życia fragment
.Kiedy wywoływany jest fragment onActivityResult w odniesieniu do cyklu życia fragmentów?
Zauważyłem również, że onActivityResult
jest wywoływane po onStart
.
Ale tu jest ta dziwna część: mam zmienną fileUri == "jakaś ścieżka obrazu". Ta zmienna to
- NOT NULL w onStart.
- NULL w onActivityResult
- NOT NULL ponownie w onResume
zobaczyć 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
Najgorsze jest to się dzieje tylko 50% czasu. Kolejne 50% atActivityResult może uzyskać dostęp do wartości fileUri bez problemu ...
Jak mam to debugować?
UWAGA: Ze względu na prostotę nie zawierałem kodu moich metod onResume, onStart, onActivityResult. Są to tylko podstawowe metody ze zmiennym sprawdzaniem i logowaniem. W razie potrzeby edytuję pytanie i dodaję te metody.
UWAGA2: używam biblioteki wsparcia google do obsługi fragmentów w starszych wersjach interfejsu API.
Czy uda Ci się rozwiązać ten problem? – aProgrammer
Czy to możliwe, że są one różnymi instancjami tej samej klasy 'Fragment1'? Dodaj "System.identityHashCode (this)" do dzienników, aby wydrukować identyfikator każdej instancji – Xiao