【发布时间】:2014-01-28 14:28:27
【问题描述】:
我正在将图像加载到 android 手机的内存中,这样我就可以通过 web 服务将它们传递到 web 服务中。
有时我会出现内存不足错误,我已经可以用
捕获这个异常了 try{
bm = BitmapFactory.decodeFile(path);
}catch(OutOfMemoryError ofmE){
System.out.println("OUT OF MEMORY $$$$$$$$" + ofmE);
}
虽然我需要执行这个操作,所以我需要清理内存。我怎样才能做到这一点?我的意思是程序化。
【问题讨论】:
-
将大型位图加载到内存中是一个经典问题。你必须缩小它们:developer.android.com/training/displaying-bitmaps/… 否则,寻找一种方法来传递文件而不解码它。
-
确实如此,但它可能总是给你一个内存不足的异常。
-
文件的大小无关紧要,重要的是加载到内存时的大小。例如,您可以使用 RGB_565 而不是 ARGB_8888(默认值)将大小减半 - 请参阅@NigelK 发布的链接
标签: java android memory out-of-memory ram