Tôi đang tìm một câu trả lời kỹ thuật về cách thư viện robospice android quản lý vòng đời hoạt động. Từ nhận trang bắt đầu:.Làm thế nào để robospice quản lý vòng đời hoạt động?
https://github.com/octo-online/robospice/wiki/Starter-Guide
"Là một lớp bên trong của hoạt động của bạn (hoặc bối cảnh khác), thêm một RequestlListener rằng sẽ cập nhật giao diện người dùng của bạn Đừng lo lắng về rò rỉ bộ nhớ, RoboSpice quản lý hoạt động của bạn vòng đời."
Câu hỏi của tôi là cách robospice tự động cập nhật trình nghe yêu cầu để nó vẫn có thể gọi đúng người nghe với ngữ cảnh chính xác sau khi quay và sau khi hoạt động đã bị hủy và tái tạo dưới dạng một phiên bản mới?
Tôi đã cố gắng để thiết kế đối chiếu mã nguồn nhưng đã không tìm thấy một câu trả lời nào:
https://github.com/octo-online/robospice
Vì vậy, nếu bạn không cung cấp requestCacheKey và có nhiều phiên bản của cùng một Hoạt động đang chạy cùng một lúc, thì addListenerIfPending vẫn hoạt động chính xác? Hoặc là không có đủ thông tin trong trường hợp đó? Đây có lẽ là một kịch bản không chắc nhưng tôi tò mò. – craigrs84
@snicolas, tôi tò mò, nếu bạn không gọi shouldStop() (hoặc phương pháp không đồng bộ) không phải thư viện gọi lại cho những người nghe đã đăng ký Hoạt động, Phân đoạn, Dịch vụ, v.v ...? Nếu không đào quá nhiều thông qua nguồn và dựa trên việc sử dụng và kiểm tra thư viện của bạn sớm, tôi sẽ nhận được một ngoại lệ khi tôi nhận được một cuộc gọi lại đến một Object đã "chết". Ngoài ra, thư viện là tuyệt vời, xin vui lòng theo kịp công việc tốt! – AllDayAmazing
Nếu bạn không gọi shouldStop, thì người nghe sẽ được kích hoạt. Điều này có thể gây ra sự cố và rò rỉ bộ nhớ vì người nghe thường xuyên là các lớp bên trong và giữ một tham chiếu trên một cá thể hoạt động đã bị phá hủy và thậm chí nó có thể sụp đổ nếu bạn làm những việc như findViewById trong trình lắng nghe của bạn. Tôi nghĩ rằng bạn đã có nó, chỉ muốn làm cho mọi thứ rõ ràng. – Snicolas