我在多个地方使用createBitmap()
。有时候这个API会抛出OutOfMemoryError()
异常。如何避免这种异常?如何避免android中的createBitmap()崩溃
我使用类似下面,
createBitamp(width, height, Config.ARGB_8888);
屏幕
屏幕
任何帮助的height = height
的width = width
将不胜感激。
我在多个地方使用createBitmap()
。有时候这个API会抛出OutOfMemoryError()
异常。如何避免这种异常?如何避免android中的createBitmap()崩溃
我使用类似下面,
createBitamp(width, height, Config.ARGB_8888);
屏幕
屏幕
任何帮助的height = height
的width = width
将不胜感激。
很多人面临这个问题。您有三种方式来解决proble:
通常情况下,垃圾收集器会有所帮助。
Justin Breitfeller的回复links更详细地解释了Bitmap的内部工作原理。要删除的消息是分配给位图数据的内存(在本机createBitmap方法中)被分开处理,并且在Bitmap成为垃圾收集时不会被GarbageCollector直接释放。真正的解决方案是在不使用它们时回收()你的位图。这仍然会保留为Bitmap对象分配的(小)内存,但会标记分配给位图数据垃圾收集的(大)内存。因此,垃圾收集器反过来将释放这两个,但你不必手动调用它,在OutOfMemory发生之前,JVM将尝试GarbageCollect反正。
System.gc()似乎工作最适合我!谢谢!! –
我发布了一些关于如何在以下Android问题单中处理位图的信息。这可能对您有所帮助:http://code.google.com/p/android/issues/detail?id=8488#c80
阅读此博文http://codingaffairs.blogspot.com/2016/07/processing-bitmap-and-memory-management.html –