2

我的项目完全基于图像。我在我的项目中使用画廊和封面流,由于堆大小较小,应用程序被强制关闭。

所以每次我加载我的应用程序时,我都想清除堆大小,这样我就可以重用它。
System.gc() & recycle ()在画廊和封面流中使用了方法,但我的画廊和封面流是相互关联的,因此对象总是被引用,因此System.gc()没有recycle()效果,我的画廊和封面流在使用它时仍然会在随机时间点崩溃。

出于某种原因,我无法在此处显示我的代码,即使它非常大,所以我无法在此处显示。

请帮助我并感谢您阅读此问题。

4

3 回答 3

0

增加堆空间..并打开自动删除,如果你去偏好和管理堆空间,就像在eclipse中一样;你可以点击那里的垃圾桶按钮

于 2014-01-03T12:36:01.583 回答
0

要控制由于此内存问题导致的崩溃,您需要这样做:

BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap preview_bitmap=BitmapFactory.decodeStream(is,null,options);

inSampleSize 值减少了内存消耗。

可以从此线程获得更多信息:

将图像加载到 Bitmap 对象时出现奇怪的内存不足问题

希望这会帮助你。

于 2012-04-17T06:20:30.307 回答
0

好吧,您无法真正控制强制 GC 运行。它自己运行,只要它认为是时候了。

System.gc() 什么时候做任何事情

因此,您唯一的选择是明智地使用图像和位图。

提示 => 使用软引用。 http://developer.android.com/reference/java/lang/ref/SoftReference.html

于 2012-04-17T06:02:08.460 回答