2013-06-06 21 views
5

Bất cứ khi nào tôi điều hướng khỏi ứng dụng của mình bằng nút Trang chủ trên điện thoại Android và nhập lại ứng dụng bằng biểu tượng trình khởi chạy, hoạt động ban đầu của bản sao ứng dụng của tôi. Nếu tôi lặp lại thói quen năm lần, có năm trường hợp hoạt động ban đầu của tôi.Tại sao hoạt động của tôi gây rò rỉ bộ nhớ khi điều hướng bằng nút trang chủ?

Tôi đã giám sát điều này thông qua các bãi chứa đống trong Eclipse, đảm bảo rằng tôi thu thập rác trước mỗi lần đổ. Đây là quan điểm tôi nhận được khi tôi yêu cầu Merge Shortes Đường dẫn đến GC gốc với tất cả các tài liệu tham khảo của lớp hoạt động của tôi trong giao diện biểu đồ: (? Hoặc lớp)

Class Name                  | Ref. Objects | Shallow Heap | Ref. Shallow Heap | Retained Heap 
------------------------------------------------------------------------------------------------------------------------------------------------- 
                       |    |    |     |    
android.view.ViewRootImpl$WindowInputEventReceiver @ 0x41408a80 Native Stack |   1 |   32 |    224 |   184 
class android.view.inputmethod.InputMethodManager @ 0x40d93e78 System Class |   1 |   88 |    224 |   616 
'- mInstance android.view.inputmethod.InputMethodManager @ 0x413422e0   |   1 |   112 |    224 |   296 
    '- mServedView, mNextServedView android.widget.ListView @ 0x41331100  |   1 |  1 088 |    224 |  124 096 
     '- mContext nilsnett.chinese.activities.GameOverviewActivity @ 0x44eeecd8|   1 |   224 |    224 |   1 000 
android.view.ViewRootImpl$WindowInputEventReceiver @ 0x41af4a60 Native Stack |   1 |   32 |    224 |   184 
android.view.ViewRootImpl$WindowInputEventReceiver @ 0x412cf928 Native Stack |   1 |   32 |    224 |   184 
android.view.ViewRootImpl$WindowInputEventReceiver @ 0x44cd3090 Native Stack |   1 |   32 |    224 |   184 
'- this$0 android.view.ViewRootImpl @ 0x44cd1f20        |   1 |   464 |    224 |   2 168 
    '- mView com.android.internal.policy.impl.PhoneWindow$DecorView @ 0x44cbef00|   1 |   536 |    224 |   1 336 
     '- mContext nilsnett.chinese.activities.GameOverviewActivity @ 0x44cbdee8|   1 |   224 |    224 |   1 000 
Total: 5 entries                |   5 |   216 |    1 120 |    
------------------------------------------------------------------------------------------------------------------------------------------------- 

Vì vậy, nó có vẻ như là một tài sản WindowInputEventReceiver đang giữ tham chiếu đến hoạt động của tôi GameOverviewActivity. Tại sao, và làm thế nào để ngăn chặn nó?

+1

Điều gì sẽ xảy ra nếu bạn chỉ định 'android: singleInstance =" true "' trong tệp kê khai của mình? –

+0

Kiểm tra Cờ Inent bạn đang thiết lập khi bắt đầu Hoạt động ... Đây là một hành vi bất thường, một số mã bị rò rỉ phải ở đó ... – aProgrammer

+0

Bạn có bất kỳ hộp thoại hiển thị nào khi bạn nhấn nút home ?? –

Trả lời

-2

Tôi đã tìm thấy lý do là WindowInputEventReceiver triển khai phương thức hoàn thiện , nó gây ra tham chiếu. Tôi gọi số System.gc ở số onDestroy để giải quyết vấn đề này.

+0

@samurai bạn có thể cung cấp ví dụ về mã không? –

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