我創建了一個動態壁紙,通過在數組中存儲70個左右圖像來顯示動畫,然後在創建動畫時顯示一個動畫。我用CubeEngine的結構來設計它。它的大部分工作。動態壁紙 - 「設置壁紙」 - 需要用來清除內存的事件
當我第一次選擇牆紙時,它會加載數組並顯示動畫。然後,當我點擊「設置壁紙」按鈕時,我得到一個「OutOfMemoryError:位圖大小超過虛擬機預算」。我已經添加了bitmap.recycle()調用來嘗試解決此問題。
我已經把Log.d放在所有的事件中去試圖理解事件的流程。看起來像是當點擊「Set Wallpaper」按鈕時,流程直接進入構造器。
不會觸發onDestroy事件或onSurfaceChanged事件,也不會觸發除onTouchEvent之外的任何其他事件。
因此,我的原始圖像數組存儲在內存中,當它執行構造函數時,它會嘗試將另一個數組與圖像一起加載並耗盡內存。
我找不到一個事件來將邏輯放入以清除我的原始數組,當他們單擊「設置壁紙」按鈕時。
有沒有辦法給「設置壁紙」按鈕添加邏輯,或者是否有另一個事件我可以添加到我的代碼,我應該能夠做到這一點?
我見過別人有這個問題,但還沒有看到解決方案。
任何建議,將不勝感激。