码迷,mamicode.com
首页 > 移动开发 > 详细

android 重复进入app heapSize不断增大的问题

时间:2014-11-24 13:37:34      阅读:150      评论:0      收藏:0      [点我收藏+]

标签: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不断增大的问题

标签:android

原文地址:http://blog.csdn.net/ly985557461/article/details/41443279

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!