Tôi tò mò lý do tại sao dưới đây là một rò rỉ bộ nhớ vì mHandler được tạo trên mainThread và bây giờ khi onDestroy được gọi là wont nó chỉ giết thread? làm thế nào người xử lý có thể tồn tại sau khi hoạt động bị phá hủy? tôi chưa tạo chủ đề mới. Tôi có hiểu rằng một xử lý nếu nó có những thứ tôi hàng đợi tin nhắn sẽ vẫn còn ngay cả sau khi một sợi bị phá hủy?Android - trình xử lý chính có thể gây ra rò rỉ bộ nhớ không?
Các tài liệu tham khảo doc im đọc là here
để bạn nói nếu một người xử lý có thư trong hàng đợi, nó phải tiếp tục chạy ngay cả khi hoạt động được tạo khi kết thúc, đúng không? – j2emanue
Và trong trường hợp ví dụ của tôi, trình xử lý được liên kết với mainThread. và tôi đang đăng runnables cho chủ đề chính looper. bây giờ khi hoạt động gọi onDestroy vì có tin nhắn vẫn còn trong hàng đợi chính của lThủ công, GC sẽ không thu thập hoạt động? hoặc là GC sẽ không thu thập các hoạt động vì các tài liệu tham khảo các runnable giữ? Xem những gì tôi có ý nghĩa? Cho phép nói runnable đã không có một tài liệu tham khảo hoạt động? nó sẽ bị rò rỉ? – j2emanue
@ j2emanue nếu runnable của bạn không giữ bất kỳ tham chiếu hoạt động nào, trong trường hợp đó rò rỉ hoạt động sẽ không xảy ra, nhưng vẫn chủ đề chính sẽ còn sống vì nó phải hoàn thành các sự kiện trong hàng đợi Tin nhắn được đăng bởi runnable. –