我有一個應用程序,我寫的是位圖很重。如果您啓動該應用程序,請退出該應用程序並多次回到該應用程序,最終由於內存不足而最終得到強制關閉。Android內存異常
我知道哪裏出了內存不足,可以試試看。問題是,如果我沒有運行記憶,我該怎麼辦?沒有位圖,我的應用程序無法正常工作,所以我不能不顯示它們。
我試過把onPause設置爲null。我曾嘗試在onPause完成。在寫這封電子郵件之前,我做了大量研究並閱讀了許多帖子,並嘗試了很多建議。
底線是我使用的內存似乎沒有被釋放或其他事情正在發生。
我使用ADB介面執行cat/proc/meminfo中的啓動和停止,並在此之間的命令嘗試是我發現:
MemTotal:31348
啓動應用程序,一切工作
MemTotal: 18180
退出應用
MemTotal:20160
啓動應用程序,一切工作
MemTotal:12480
退出應用
MemTotal:13740
啓動應用程序,一切工作
MemTotal:9600
退出應用
MemTotal:10844
啓動應用程序,第一內存異常,5位圖的只是一個沒有顯示出來,但沒有崩潰
MemTotal:6224
退出應用
MemTotal:7244
開始應用,不啓動,失控的內存導致我趕上一個錯誤,所以退出
MemTotal :7836
啓動應用程序,內存不足的異常,並強制關閉,打力關閉按鈕
MemTotal:31648
正如你可以看到內存現在終於發佈了,但只有強制關閉後。
如果我開始和退出真的很快,或者在每次開始和結束之間等待發生同樣的事情並不重要,所以我不能只引入延遲。
有沒有辦法「強制」強制關閉,除非沒有真正顯示消息並且不是錯誤狀態?我認爲這就是完成()應該做的事情,但事實並非如此。
感謝您的任何幫助或想法,我可以嘗試。
這聽起來像你並沒有真正把所有東西都設置爲null,你需要。如果您發佈了一些代碼,顯示所有保持對您的位圖的引用的數據結構,或許我們可以提供幫助。另外,請查看使用分配跟蹤器(描述[這裏](http://android-developers.blogspot.com/2009/02/track-memory-allocations.html))。 – 2011-05-06 17:19:12