android 重複進入app heapSize不斷增大的問題

來源:互聯網
上載者:User

標籤:android

最近項目中碰到了一個特別奇葩的問題,上stackoverflow搜尋了半天,最後終於一句話解決了,system.exit(0);沒錯,相信程式中都存在雙擊退出程式的功能,但是我用DDMS分析應用程式的記憶體,發現當我重複進入一個Activity的時候,記憶體長的很快,當然這塊涉及到記憶體最佳化的問題,記憶體的bug是我程式中持有了Activity的全域引用,並放到了一個靜態list中導致的,所以時間長了,我用ImageLoader載入不出來圖片。。。。就是這麼奇葩的現象。。。。無語了。好吧,接下來就是開始了漫長了尋找過程,最後發現代碼中我建立了一個靜態list,每次去網路請求就儲存了一個listener,listener裡面更新介面,當然介面就涉及到了View的建立,View的建立需要引用當前的Activity的Context,所以導致整個Activity都沒有釋放掉。。。坑爹啊!!!


上一個反反覆複進入一個Activity,記憶體不斷增大的問題解決了,接下來就該解決另一個問題了,我重重複復的進入我的Activty,發現app 的heapSize 不斷的增大,是什麼原因呢,我猜測的是,我進入主Activity的時候有一個進場動畫,需要在Assets中載入一張400多k的圖片,然後讓這個圖片在螢幕中正方形移動,好吧,但是過場動畫後,我及時的已經把圖片釋放掉了,但是為什麼每一次進入App,系統都多給我分配4~5兆呢,這不坑爹啊!我記憶體夠用啊。。。。。,上帝啊!好吧,繼續找。。。。,最後上stackOverFlow發現了問題的所在,我們在雙擊返回應用的時候,我們只是finish掉了Activity,這還不夠,應該調用System.exit(0);

加上這句話後,發現在退出應用後,heapSize直接釋放掉了30~40兆,這是什麼概念,當你重新進入應用的時候,就和你第一次安裝的時候系統給你分配的heapSize一樣,這就是我要的效果。


總結:在雙擊退出應用的時候,記得調用system.exit(0);這句話,釋放app的appSize。

android 重複進入app heapSize不斷增大的問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.