2012-05-07 20 views
5

Tôi tạo ra các bitmap drawables từ các ảnh lớn và lỗi OutOfMemory xuất hiện tại thời điểm đó. Phương thức Activity.onLowMemory() nên được gọi nhưng thực ra nó không được gọi bởi khung công tác.Phương thức public void onLowMemory() của Activity không được gọi bởi android framework khi hệ thống chạy OutOfMenory

Có giải pháp nào về vấn đề này hoặc có cách nào khác để ghi lại lỗi OutOfMemory trong Android không?

+0

'onLowMemory' được gọi khi toàn bộ hệ thống * đang ở mức thấp - ứng dụng của riêng bạn nhai qua bộ nhớ có sẵn của nó không phải là đồng nsidered một lý do cho phần còn lại của hệ thống để bắt đầu thắt chặt vành đai của nó. – Jens

Trả lời

8

Đó không phải là cách onLowMemory hoạt động. Nó sẽ được gọi khi toàn bộ Hệ thống chạy chậm trên bộ nhớ, không phải ứng dụng của bạn, vì vậy bạn không thể tránh được OOM chính xác với nó. Xem chi tiết here.
Cũng thấy một bài viết trên blog từ Romain Guy đối với một số thông tin thêm về rò rỉ bộ nhớ: links

Ít nhất có hàng trăm câu hỏi làm thế nào để xử lý file ảnh hier trên Stackoverflow:

Android Bitmap Memory Leak, what to do more
Bitmap, Bitmap.recycle(), WeakReferences, and Garbage Collection
Android custom view Bitmap memory leak

+0

Tuyệt vời! thực sự đã giúp! bạn đã cứu ngày của tôi! –

Các vấn đề liên quan