Tôi đang làm việc để chuyển marshmallow android cho một số phần cứng. Vấn đề tôi đang phải đối mặt là, nếu tôi tạo một đối tượng UI thông qua xml, nó không bị GC quét. Ví dụ:Đối tượng giao diện người dùng được tạo thông qua XML không bị quét trong Android Marshmallow
Tôi đã tạo một ứng dụng để kiểm tra điều này. Ứng dụng này đang có 2 hoạt động. Mỗi hoạt động có một nút. Nếu tôi nhấn nút này, nó kết thúc hoạt động hiện tại và bắt đầu hoạt động khác.
Nếu tôi xác định nút trong bố cục xml và trong chế độ xem tập hợp hoạt động, nó sẽ tạo đối tượng của nút loại. Bây giờ tôi đang bật tắt các hoạt động này một lần nữa và một lần nữa để tạo ra nhiều đối tượng của nút, vì tôi không sử dụng bất kỳ LAUNCH_MODE (Cố ý).
Bây giờ cho phép nói 8 đối tượng của Nút đã được tạo. Tôi nhấn nút nhiều lần và trở về màn hình chính. Tôi đã bắt đầu GC từ Android Studio. Sau đó nếu tôi lấy Heap Dump, tôi vẫn tìm thấy 8 trường hợp Button nhưng "id của các đối tượng được thay đổi". Hơn nữa, tôi thấy rằng constructor của lớp Button không được gọi sau khi tôi bắt đầu GC.
Vì vậy, những người đã tạo các đối tượng này. Và nếu đây là những đối tượng tương tự, tại sao id đã được thay đổi.
Cùng một điều nếu tôi làm bằng cách tạo ra đối tượng Nút sử dụng lớp java Button,
như Nút b = Nút mới (Context c);
đối tượng đang được quét.
Vui lòng đặt một số ánh sáng nếu bạn hiểu sự cố.
BR, Rahul
Bạn có thể chia sẻ [mcve] không? – antonio