2011-12-19 19 views
5

Estoy usando mapa de bits en un fragmento, y llamo a bitmap.recycle() en el método onDestroy() del fragmento. Pero unas cuantas veces me sale una excepciónfragmento android cuando llamar a bitmap.recycle()

E/AndroidRuntime(4869): java.lang.RuntimeException: Canvas: trying to use a recycled bitmap [email protected]

También he intentado hacer esto en el método del fragmento onDestroyView() pero todavía tengo la misma excepción.

Puede alguien sugerir cuál es la mejor etapa del ciclo de vida fragmento donde debería llamar bitmap.recycle()

+0

referir esto: http://stackoverflow.com/questions/4959485/bitmap-bitmap-recycle-weakreference-and-garbage-collector –

Respuesta

0

se puede reciclar, ya sea en onDestroyView o onDestory, pero asegúrese de que va a crear su mapa de bits de nuevo en su alcrear o onCreateView ... ya que está usando la misma referencia de mapa de bits, está lanzando una excepción reciclada. Por lo que necesita para crear el mapa de bits de nuevo cuando se crea el fragmento o también se puede comprobar isRecycled() para saber si su mapa de bits ya se recicla

0

he encontrado la solución para esto, yo estaba luchando con exactamente el mismo problema

Lo que hice fue eliminar todas las vistas secundarias de la vista de contenido de/cada fragmento. Después de que todas las vistas de niños se han ido de cada fragmento, extraje el (los) fragmento (s)

He reciclado los mapas de bits en el 'OnDestroy' de cada fragmento tal como lo está haciendo en este momento.

+0

¿puedes publicar tu código? – Kenshin

Cuestiones relacionadas