我的项目完全基于图像。我在我的项目中使用画廊和封面流,由于堆大小较小,应用程序被强制关闭。
因此,每次加载应用程序时,我都想清除堆大小,以便可以重用它。
我在画廊和封面流中使用了
System.gc() & recycle ()
方法,但是我的画廊和封面流是相互关联的,因此该对象始终被引用,因此 System.gc()
和 recycle()
没有效果,我的画廊和封面流仍然崩溃使用时的随机时间点。
由于某种原因,我无法在这里显示我的代码,即使它很大,所以我无法在这里显示。
请帮助我并感谢您阅读这个问题。
嗯,您对强制 GC 运行没有任何真正的控制权。只要它认为时间到了,它就会自行运行。
因此,您唯一的选择就是明智地使用图像和位图。
提示 => 使用软引用。 http://developer.android.com/reference/java/lang/ref/SoftReference.html
要控制由于内存问题导致的崩溃,您需要这样做:
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap preview_bitmap=BitmapFactory.decodeStream(is,null,options);
inSampleSize 值减少了内存消耗。
可以从此线程获得更多信息:
希望这对您有帮助。
增加堆空间..并打开自动删除,就像在 Eclipse 中一样,如果您进入首选项并管理堆空间;你可以点击那里的垃圾按钮