亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Activity 代碼中查找內存泄漏以釋放內存使用并避免

在 Activity 代碼中查找內存泄漏以釋放內存使用并避免

尚方寶劍之說 2023-06-04 11:07:42
我有一個Activity帶有ConstraingLayout很多ImageViews 的 a(每張卡一個)。獲勝后,通過單擊將出現的 ImageView,將Activity“重新加載”顯示一組新的牌來玩。問題是每次獲勝后,加注使用的內存Activity而不是返回初始使用量。這會導致OutOfMemory Exception某些內存不足的設備(例如 Nexus 7)。:(邏輯是:在onCreate方法中,我設置了ConstraintLayout30 ImageViews(卡片的正面)和其他 30 ImageViews(卡片的背面)對于每個ImageView(正面和背面),我OnClickListener通過縮放可繪制資源來設置和圖像每次用戶點擊一個時ImageView,我將卡片兩側的 alpha 設置為僅顯示正確的一面如果用戶找到所有匹配項,將出現 win 視圖:如果用戶單擊它,將調用 win 方法,該方法“重新加載活動”在的第一次GiocaMemory運行AndroidStudio是profiler:獲勝后(第二次獲勝后onCreate)使用的內存為:現在Java內存使用量為28,1 MB,而不是返回初始值25,2 MB。屏幕截圖指的是具有 16 個框的布局。使用 30 盒布局,使用的內存增加了很多。(例如從 49 MB 到 83 MB)我可能會說圖像的大小調整得足夠多,以便使用盡可能少的內存,所以也許它們不是問題所在。如果我錯了請告訴我。為什么每次贏后使用的MBJava都會增加?你能幫我找到我留在代碼中的一些內存泄漏嗎?我用來“重新加載”活動的方式GiocaMemory是正確的,還是有其他方式可以讓我釋放更多資源?我發現很難找到它們,因為我對 Android 編程還比較陌生,尤其是因為我幾乎從未遇到過與內存使用過多相關的問題。
查看完整描述

1 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

您是否正確地放棄了 AudioManager 中的焦點偵聽器?

AudioManager#abandonAudioFocus(OnAudioFocusChangeListener listener)

實際的 OOM 可能是所提到的非回收列表的結果,但這可能是內存泄漏的原因。


查看完整回答
反對 回復 2023-06-04
  • 1 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號