2011-01-23 224 views
1

在前臺運行很長時間的應用程序將獲得更多優先級? 我解釋我的問題。我在Android上移植了一個與固定基礎架構進行通信的軟件。我正在做一些測試。每個測試進行5次實驗(移動節點向基礎設施發送一些查詢並評估查詢成功次數和平均時間),測試結果是這些實驗結果的平均值。 在測試過程中,應用程序始終處於前臺。 在實驗中,結果提高了e。 G。 (查詢的10%15%30%40%55%)。 我將系統實現爲活動,但尚未作爲服務。 對於測試應用程序獲得鎖SCREEN_DIM_WAKE_LOCK和WIFI_MODE_FULL。 謝謝應用程序優先級

+0

在上一次實驗中,應用程序通常會給出一個OutOfMemoryError。在實驗過程中,應用程序的堆棧大小(使用DDMS進行監視)增長。看來,如果進程獲得足夠的內存,它會變得更好,並且在某些時候它需要太多內存並被os所殺死。 – Luigi 2011-01-23 15:26:19

回答

0

它不會得到更多的優先權,你不應該這樣做的UI線程。

有幾個問題:

  • ,用戶可以關閉該應用程序,您的重要上傳過程將被暫停/取消。你可以在開除後恢復邏輯,但對於這種情況它沒有任何意義。
  • 當用戶關閉應用程序時,它可能會被操作系統關閉。
  • 你可能離開屏幕沒有更新,如果發生這種情況,你會得到一個強制關閉。
  • AFAIK在Android的下一個版本中,如果你在UI線程上做網絡邏輯,你將得到一個FC。類似薑餅的嚴格模式。

使用Service併產生最大優先級的線程。我不確定是否將最大優先級設置爲Android中的某個線程會產生任何影響,但請嘗試一下。

+0

Thanks.I已經把這個闡述放在一個單獨的線程中,我試圖改變優先級。我暫時只是爲了進行性能測試而將應用程序作爲活動來使用。 – Luigi 2011-01-23 15:24:20