2011-12-19 11 views
5

Sto usando bitmap in un frammento e chiamo bitmap.recycle() nel metodo onDestroy() del frammento. Ma un bel paio di volte ottengo un'eccezioneframmento di android quando chiamare bitmap.recycle()

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

Ho anche provato a fare questo nel metodo del frammento onDestroyView() ma ancora avuto la stessa eccezione.

Qualcuno può suggerire che cosa è la migliore fase del ciclo di vita frammento dove dovrei chiamare bitmap.recycle()

+0

fare riferimento a questo: http://stackoverflow.com/questions/4959485/bitmap-bitmap-recycle-weakreference-and-garbage-collector –

risposta

0

è possibile riciclare sia in onDestroyView o onDestory, ma assicurarsi che si sta creando nuovamente la bitmap in OnCreate o onCreateView .. poiché si sta utilizzando lo stesso riferimento bitmap, viene lanciata un'eccezione riciclata. Quindi è necessario creare nuovamente la bitmap quando si crea il frammento oppure è possibile controllare isRecycled() per sapere se la bitmap è già riciclata

0

Ho trovato la soluzione per questo, ero alle prese con lo stesso problema

Quello che ho fatto è stato rimuovere tutte le viste figlio della vista del contenuto di/ogni frammento. Dopo aver eliminato tutti i frammenti di ciascun frammento, ho estratto i frammenti

Ho riciclato le bitmap su "OnDestroy" di ciascun frammento proprio come si fa ora.

+0

puoi pubblicare il tuo codice? – Kenshin

Problemi correlati