我面對的是兒童ABCD應用程序中的太多崩潰,也是因爲由於出現的充氣異常而導致的內存不足錯誤。如何刪除充氣異常由於內存不足導致的錯誤
應用正在採取這麼大的空間,當它在前臺運行,導致其崩潰。
此問題僅出現在我們不同活動之間如此迅速,堆積區域得到填補如此之快和應用交換開始給充氣異常並最終崩潰之前釋放上的活動空間摧毀。 (活動之間的快速切換是爲了檢查應用性能)。
主要的原因可能是大圖像或應用程序採取更多的空間在後臺緩存存儲。
大尺寸圖像不能成爲問題,因爲我們已經證實所有圖片應該是大小適中的。我們用代碼完成的另一件事是通過調用finish()
方法完成每個意圖的每個活動。這裏使用finish()
方法,以便活動可以釋放當前空間中的所有位圖(關閉活動時)。
super.onCreate(savedInstanceState);
setContentView(R.layout.ringa_ringa);
pause = (ImageView) findViewById(R.id.pause);
txt = (TextView) findViewById(R.id.txt);
pause.setVisibility(View.VISIBLE);
txt.setTextColor(Color.parseColor("#ffffff"));
list = new ArrayList<>();
mediaStorageDir = new File(Environment.getExternalStorageDirectory(), "Kids_Rhymes");
ringa_thread_running = false;
pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (counter == 0) {
mediaPlayer.stop();
ringa_thread_running = false;
position = 0;
if (lyrics_ring.isAlive()) {
lyrics_ring.interrupt();
}
pause.setImageResource(R.drawable.play);
counter = 1;
} else if (counter == 1) {
pause.setImageResource(R.drawable.pause);
counter = 0;
onResume();
}
}
});
String[] words = getResources().getString(R.string.ringa).split("\\$");
for (String w : words) {
System.out.println("=======String====" + w);
list.add(w);
}
試圖找出準確的解決方案,但沒有得到合適的。
參考https://stackoverflow.com/questions/477572/strange-out-of-memory-issue-while-loading-an-image-to-a-bitmap-object – sasikumar
在這裏發佈您的代碼 – Anil
嗨Anil,我現在已經放了代碼,請檢查。 –