8

我開發使用Cordova/PhoneGap黑莓應用程序。我從服務器獲取多個圖像(地圖圖塊)。另外,我每60秒發送一次位置信息給它。過多線程在黑莓使用的PhoneGap/WebWorks的

然而,每一個現在,然後要麼當我獲取相關的圖片或發信息,我得到一個錯誤。如果我在模擬器(BB 9930,OS 7.0.0.318)上,我收到一條AppError 104: Too many threads消息,並且我的應用程序崩潰。當我在設備(BB 8520,OS 5.0.0.592)上測試我的應用程序時,不僅應用程序崩潰,而且還會重置BB。

我看過其他帖子的問題相同(如this one,this onethis one)。但是,使用Cordova/PhoneGap(JavaScript)構建應用程序時,我還沒有找到解決方案。

謝謝!

+0

你可以顯示(最好是代碼)你是如何管理線程。 – Brady

+0

問題是您無法管理線程。帶phonegap的代碼通常使用普通的javascript/html。 –

回答

0

這可能不相關,但我也有一個類似的問題,從一個BB大膽本機應用程序做了很多的請求時。收到答案後連接線程沒有正確關閉。

嘗試以下操作:

  • 變化GET < - > POST。
  • 變化HTTP < - > HTTPS。

如果服務器是您的,請評估更改API以將所有圖像作爲一個返回,並在顯示時使用偏移/裁剪。您將節省帶寬並減少連接。你的應用會加載得更快。

例如: http://www.ibloomstudios.com/articles/misunderstood_css_clip/

0

我懷疑的PhoneGap API引起此,因爲它基本上是一個層。可能你有模擬器的問題?

0

由於您使用的黑莓8520也測試,建議您保留線程的最大數量 - 在你的應用程序在任何時間點concurrently-運行 - 小於12

由於您使用Phonegap,可能是它可能正在爲您的應用程序啓動這些線程。

如果設備連接到您的系統,請將其連接到Blackberry JDE,並查看哪些線程處於活動狀態以分析是否可以重新計劃任務。

您正在使用AJAX來獲取地圖瓦片和發送位置到你的服務器?

如果你正在使用AJAX,那麼你就可以保持在JavaScript計數器來保持對請求進行檢查。

另外,你有沒有試過WebWorkers,他們可以讓你在單線程本身內完成所有的工作。

如果全部失敗,您還可以開發自定義的Phonegap插件,以使用Java Script接口API執行類似的操作。