2012-10-22 47 views
0

我正在爲BlackBerry 6.0+設備開發JQM + Phonegap應用程序。 在應用程序中,我需要以Base64編碼格式將圖像上載到服務器。Phonegap應用上的黑莓內存低問題

我正在使用HTML5 canvas元素進行此操作。 當應用程序嘗試執行上述操作時,應用程序退出後立即出現內存不足錯誤。應用程序圖標在此之後也會更改。 我正在使用WebWorks SDK 2.3和phonegap版本1.7。

我已經通過黑莓論壇和內存問題似乎是一個已知的問題。 有沒有其他方法可以做這個操作來避免這個錯誤?

此問題特定於6.0 BB設備。 相同的應用程序在7.0設備上正常工作。

+0

您是否在您的應用程序中使用任何地圖功能? – alishaik786

+0

不,我沒有使用任何地圖功能.. – saraf

+0

可能會減少設備中的內存(不是SDCard)。刪除6.0設備中的一些應用程序並再次嘗試。 – alishaik786

回答

1

嘗試

  1. 從配置文件中刪除該代碼(包括開始和結束標記)

    輪緣:導航模式= 「焦點」

    功能ID =「黑莓。 ui.dialog「

  2. 加載您的腳本動態執行,並在腳本加載並準備就緒時執行回調函數以上載圖像,導致此行爲的最可能原因是應用程序關閉時,HTML頁面中包含的資源不會釋放。此外,黑莓的警戒插件是一個巨大的資源,所以它應該佔用大量的內存。

    function loadScript(url, callback) 
    { 
        // adding the script tag to the head as suggested before 
        var head = document.getElementsByTagName('head')[0]; 
        var script = document.createElement('script'); 
        script.type = 'text/javascript'; 
        script.src=url; 
        // then bind the event to the callback function 
        // there are several events for cross browser compatibility 
        script.onreadystatechange = callback; // not working on OS5 
        script.onload = callback; // not working on OS5 
        // fire the loading 
        head.appendChild(script); 
    } 
    
  3. 如果您的應用不清除設備存儲或本地存儲或者應用程序被安裝或卸載設備存儲,你將不得不編寫此(iOS和Android應用程序自動完成)。

上述三項降低了低設備內存錯誤的概率。

從最終用戶的角度來看,如果應用程序不使用嵌入的媒體,取消勾選或取消選擇「使用嵌入的媒體」

如果存在與服務器通信,則可能需要重構你的代碼,以減少平均時間用於執行代碼並採用一些壓縮算法來減少網絡過載。