library - Cómo evitar la falla de createBitmap() en Android
libreria glide android (2)
He publicado información sobre cómo se manejan los mapas de bits en el siguiente boleto de emisión de Android. Puede serle útil: http://code.google.com/p/android/issues/detail?id=8488#c80
Estoy usando createBitmap()
en múltiples lugares. Algunas veces esta API está lanzando excepción OutOfMemoryError()
. ¿Cómo evitar esta excepción?
Estoy usando como abajo,
createBitamp(width, height, Config.ARGB_8888);
width = width
de la pantalla
height = height
de la pantalla
Cualquier ayuda sería apreciada.
Muchos enfrentan este problema. Tienes tres formas de resolver el problema:
- Aumente la memoria disponible: detenga los servicios o cambie su dispositivo a uno más nuevo
- Disminuya el uso de memoria: mediante la optimización de su código
- [ACTUALIZAR] Liberar la memoria de Bitmap no utilizada: call recycle () .
- [ACTUALIZAR] No use GarbageCollector :)
Por lo general, con problemas de mapa de bits, el recolector de basura ayudará.
La respuesta de Justin Breitfeller se vincula a una explicación más detallada del funcionamiento interno del Bitmap. El mensaje que se debe quitar es que la memoria asignada para los datos del mapa de bits (en el método native createBitmap) se trata de manera algo separada, y GarbageCollector no la libera directamente cuando Bitmap se convierte en basura. La solución real es reciclar () sus bitmaps cuando no los usa. Esto mantendrá la memoria (pequeña) asignada para el objeto Bitmap, pero marque la memoria (grande) asignada para la recolección de basura de datos de mapa de bits. Por lo tanto, GarbageCollector liberará ambos, pero no tiene que llamarlo manualmente, antes de que ocurra una OutOfMemory, JVM intentará GarbageCollect de todos modos.