Ngăn xếp hoạt động của tôi là A B C, với C ở trên cùng. B bắt đầu bằng startActivityForResult().FLAG_ACTIVITY_CLEAR_TOP và onActivityResult
Bây giờ, trong C, nó bắt đầu A và xóa hàng đầu bằng cách sử dụng đoạn mã sau:
finish();
intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Câu hỏi của tôi là, sẽ onActivityResult() A được gọi sau khi đoạn mã trên được thực hiện? Tôi mong đợi nó sẽ, bởi vì B bị phá hủy sau khi C bắt đầu A và xóa đầu. Nhưng, mã thử nghiệm của tôi cho thấy rằng onActivityResult() trong A không được gọi. Tôi bị bối rối. Ai đó có thể giúp đỡ?
Cảm ơn.
Kai, tài liệu cho CLEAR_TOP nói "tất cả các hoạt động khác trên đầu trang sẽ bị đóng và Mục đích này sẽ được gửi đến hoạt động cũ (hiện tại trên đầu) như là một ý định mới. " Tuy nhiên, tôi nghi ngờ rằng "đóng" là một sự lựa chọn nghèo của các từ trong tài liệu .. Android thường không 'đóng' Hoạt động trừ khi bộ nhớ yêu cầu nó hoặc họ gọi kết thúc(). Điều này có thể yêu cầu một số thử nghiệm .. Tôi quan tâm đến việc thấy những gì bạn tìm thấy. – DJC