0

如何有效地回收碎片中的大圖像(更確切地說,在ViewPager)?片段OutOfMemory

onDestroyView()我回收做bitmap.recycle()的位圖,但首先我存儲在的onSaveInstanceState捆綁的路徑。當onSaveInstanceState未被調用時,我閱讀了數千個關於大小寫的問題和線索。但是,FragementStatePagerAdapter調用destroyView()因此它釋放與片段關聯的資源。

如果我阻止FragmentStatePagerAdapter調用super.destroyView()我會保持Fragment的UI不變,我意識到它。

我想實現的是做.recycle()當片段被破壞,保存路徑在對的onSaveInstanceState位圖,然後再利用的路徑,創造新的位圖時onCreateView()被稱爲然後將相同的位圖放在碎片UI的ImageView中。

我使用Google的指南來高效地加載/採樣位圖,然後將它們設置爲ImageView。

任何指針都會很棒!

回答

0

想想別的方法。創建位圖管理器,該管理器將使用LruCache並可訪問您在尋呼機中使用的所有片段/視圖。通過這種方式,您始終可以在內存中獲得最新的位圖,並且其數量有限,無法獲得OutOfMemory異常。