2011-12-19 4 views
5

조각에서 비트 맵을 사용 중이고 조각의 onDestroy() 메서드에서 bitmap.recycle()을 호출합니다. 그러나 꽤 많은 시간이 나는 또한 조각의 onDestroyView() 방법이 일을 시도했지만 여전히 같은 예외를 가지고android fragment bitmap.recycle()을 호출 할 때

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

예외를 얻을.

아무도 내가 bitmap.recycle()

+0

다음을 참조하십시오. http://stackoverflow.com/questions/4959485/bitmap-bitmap-recycle-weakreference-and-garbage-collector –

답변

0

당신이 onDestroyView 또는 onDestory에서 중 재활용 할 수 부르지 만, 당신이 당신의 한 OnCreate 또는 다시 비트 맵을 생성하고 있는지 확인해야 조각 라이프 사이클의 최고 단계입니다 무엇을 제안 할 수 있습니다 onCreateView .. 동일한 비트 맵 참조를 다시 사용하면 재활용 예외가 발생합니다. 따라서 조각을 만들 때 다시 비트 맵을 만들거나 비트 맵이 이미 재활용되었는지 여부를 확인하기 위해 isRecycled()를 확인할 수 있습니다.

0

이 해결책을 찾았습니다. 정확히 동일한 문제로 어려움을 겪었습니다.

내가 한 것은 각/각 조각의 콘텐츠보기에 대한 모든 하위 뷰를 제거했기 때문입니다. 모든 하위보기가 각 조각으로 나간 후, 나는 조각을 po습니다.

저는 지금하고있는 것처럼 각 조각의 'OnDestroy'에 비트 맵을 재활용했습니다.

+0

코드를 게시 할 수 있습니까? – Kenshin

관련 문제