程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> J2ME實踐:避免OutOfMemoryError

J2ME實踐:避免OutOfMemoryError

編輯:關於JAVA

對於MIDP應用程序來說,由於手機設備上的資源非常有限,較弱的CPU計算能力,有限的內存(從幾十KB到幾百KB,雖然少數高端手機擁有超過1M的動態內存),很小的屏幕尺寸,因此,為了讓一個MIDP應用程序能夠不加改動地在多種不同手機上運行,程序必須有能力根據系統配置自動調整運行時的參數。比如,對於內存非常小的手機,如果從網絡下載一幅較大的圖像,需要分配巨大的緩沖區,就可能導致OutOfMemoryError錯誤,使應用程序直接終止,這會使用戶感到不知所措,或者丟失用戶的重要數據。

因此,在試圖分配一塊大內存之前,首先使用System.gc()嘗試讓垃圾收集器釋放無用對象占用的內存,然後,使用Runtime.getRuntime().freeMemory()方法獲得可用的內存空間。如果可用空間太小,給用戶一個“內存不足,無法完成操作”的Alert提示,從而盡可能地避免OutOfMemoryError錯誤。

// 示例代碼:
System.gc();
int max_size = 102400; // 100KB
int free_size = (int)Runtime.getRuntime().freeMemory();
if(max_size>free_size*2/3) {
// TODO: Alert!
}
else {
byte[] buffer = new byte[max_size];
// TODO: Download image...
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved