我的项目完全基于图像。我在我的项目中使用了一个库和一个封面流,由于堆大小较小,应用程序强行关闭。
所以每次加载我的应用程序时,我都想清除堆大小,所以我可以重复使用它
我在图库和封面流程中使用了System.gc() & recycle ()
方法,但我的图库和封面流是相互关联的,因此始终引用该对象,因此System.gc()
和recycle()
无效,我的图库并且在使用它时,coverflow仍会在随机时间点崩溃。
出于某种原因,我无法在此处显示我的代码,即使它非常大,所以我无法在此处展示。
请帮助我&谢谢你阅读这个问题。
答案 0 :(得分:0)
好吧,你没有任何真正的控制权来强制GC运行。只要它认为是时候,它就会独立运行。
When does System.gc() do anything
因此,您唯一的选择是明智地使用图像和位图。
提示=>使用软引用。 http://developer.android.com/reference/java/lang/ref/SoftReference.html
答案 1 :(得分:0)
要控制因内存问题导致的崩溃,您需要这样做:
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap preview_bitmap=BitmapFactory.decodeStream(is,null,options);
inSampleSize值可减少内存消耗。
可以从这个帖子获得更多信息:
Strange out of memory issue while loading an image to a Bitmap object
希望这会对你有所帮助。
答案 2 :(得分:0)
增加堆空间..并启用自动删除,就像在eclipse中一样,如果你去偏好并管理堆空间;你可以点击那里的垃圾按钮