2010-11-14 34 views
7

bạn bè,điểm rò rỉ bộ nhớ android không rõ ràng!

tôi đã đọc bài viết đầy đủ liên quan để tránh rò rỉ bộ nhớ trong Android. http://developer.android.com/resources/articles/avoiding-memory-leaks.html

ngay bây giờ

1) tôi đang sử dụng tin lớp lồng nhau không tĩnh

nếu tôi làm cho rằng lớp lồng nhau tĩnh nó sẽ hữu ích?

2) bài viết nói Nếu bạn chuẩn bị sử dụng Lớp học bên trong hoặc Lớp học ẩn danh hãy suy nghĩ cẩn thận. Không sử dụng các lớp ẩn danh cho đến khi bạn chắc chắn và có thể chứng minh rằng chúng không gây ra rò rỉ bộ nhớ.

bất kỳ ai có thể cho tôi ví dụ về điều đó không? cái nào là cách tiếp cận tốt và cái nào xấu đối với rò rỉ bộ nhớ.

bất kỳ trợ giúp nào sẽ được đánh giá cao.

+0

Tôi thứ hai, tôi đọc bài báo nhiều lần và tôi vẫn không chắc chắn chính xác mình nên làm gì để ngăn chặn rò rỉ trong ứng dụng của mình. Tôi có phải giữ một tham chiếu đến mọi drawable trong ứng dụng của tôi và thiết lập gọi lại của nó để null ?? Tôi nên làm gì, bài viết nên thực sự cung cấp thêm một số ví dụ cho biết một chủ đề quan trọng như thế nào. – marchinram

+0

có quyền tôi đang bối rối quá ví dụ không đủ rõ ràng và cần giải thích thêm. – UMAR

Trả lời

1

1) Tôi sẽ tránh sử dụng các lớp tĩnh nói chung. Đặc biệt là nếu bạn cần phải vượt qua trong con trỏ Context, vì điều này sẽ gây ra một rò rỉ. Trừ khi bạn có các lớp tĩnh có các hằng số, chúng tương tự như các biến toàn cục và loại bỏ kiến ​​trúc Android, có nghĩa là tách rời các hoạt động.

Đặc biệt bạn không muốn khai báo đối tượng Có thể vẽ hoặc đối tượng khung Android là tĩnh. Điều này làm hỏng cuộc đời của họ.

2) Tôi chưa gặp bất kỳ sự cố nào với các lớp ẩn danh nói riêng. Bạn có thể trong một số trường hợp có thể bị rò rỉ một biến bối cảnh, nhưng điều này là khó làm trên một chủ đề duy nhất. Khi đi qua một bối cảnh xung quanh, bạn có thể hạn chế rò rỉ bằng cách sử dụng getApplicationContext(), nó trả về bối cảnh toàn cục mà sẽ không bị rò rỉ.

Hy vọng điều này sẽ hữu ích!

+0

Xem thêm chủ đề này: http://code.google.com/p/android/issues/detail?id=8488 – swinefeaster

+0

Tôi không biết liệu bạn có gặp rắc rối gì không, nhưng tôi đã tìm thấy một giải pháp giảm khắc phục tất cả sự cố rò rỉ bộ nhớ android với các lớp học Android chuẩn: http://code.google.com/p/android/issues/detail?id=8488#c51 – swinefeaster