khi tôi bắt đầu ý định Camera
, tôi nhận thấy onActivityResult
được gọi trước onResume
trong vòng đời fragment
.Khi nào thì onActivityResult của fragment được gọi trong vòng đời của các mảnh vỡ?
Tôi cũng nhận thấy onActivityResult
được gọi sau onStart
.
Nhưng đây là phần lạ: tôi có biến fileUri == "một số đường dẫn hình ảnh". Biến này là
- NOT NULL in onStart.
- NULL trong onActivityResult
- NOT NULL một lần nữa trong onResume
thấy 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
phần tồi tệ nhất là, điều này chỉ xảy ra 50% thời gian. Một 50% onActivityResult khác có thể truy cập giá trị fileUri mà không có vấn đề ...
Làm thế nào để sửa lỗi này?
LƯU Ý: Vì mục đích đơn giản, tôi không bao gồm mã các phương thức onResume, onStart, onActivityResult của mình. Chúng chỉ là các phương thức cơ bản với kiểm tra biến và cuộc gọi log. Nếu cần, tôi sẽ chỉnh sửa câu hỏi và thêm các phương thức này.
NOTE2: tôi đang sử dụng thư viện hỗ trợ của Google để hỗ trợ các đoạn trên các phiên bản API cũ hơn.
Bạn có quản lý để giải quyết vấn đề đó? – aProgrammer
Có thể chúng là các cá thể khác nhau của cùng một lớp 'Fragment1'? Thêm một 'System.identityHashCode (this)' vào nhật ký để in ra một định danh mỗi cá thể – Xiao