在我的應用程序中,有一些活動使用高分辨率PNG進行圖形化處理。我有OutOfMemoryError
錯誤,並通過將android:largeHeap="true"
添加到我的清單文件來修復它。爲什麼ativity仍然使用稱爲finish()的RAM?
在存儲器監視器,第二activiy增加100+的RAM MB和不降低altought稱爲finish()
函數它。以下是開始第三個活動的代碼:
public void start_game(View v){
header.setText("Loading...");
Intent i = new Intent(this,game.class);
i.putExtra("episode",Integer.parseInt(v.getTag().toString()));
i.putExtra("online",false);
startActivity(i);
finish();
}
如何從UI和RAM中完全刪除活動?
第一件事'android:largeHeap =「true」'只是一個繃帶,並不是OOM的真正答案,因爲它沒有真正解決實際的OOM問題,這是代碼的不好實現。第二個'finish()'不會立即釋放該活動中的所有內容,線程可能仍然保存該活動引用並消耗內存。 :) – Enzokie