2013-06-24 49 views
0

假設我正在使用內存和CPU密集型應用程序,並且我得到一個我一定會說的電話,比如一分鐘。在這種情況下,我想知道應用程序的命運。它會繼續在後臺執行嗎?它的優先級會被改變嗎?有通話時正在運行的應用程序會發生什麼情況?

此外,如果所有的應用程序使用更高的內存和CPU的數量,有沒有機會應用程序將被關閉的Android操作系統?

請分享討論此主題的任何資源和文檔。提前致謝。 :)

回答

2

還會否繼續執行在後臺

至少在幾毫秒,是的。無論應用程序如何移動到後臺,只要在後臺運行,其進程都有資格終止,爲其他應用程序釋放內存。當發生這種情況取決於很多變量 - 可能是毫秒,可能是幾個小時。

並將其優先級改變?

後臺應用程序的進程運行在一個有助於限制CPU利用率的類中。

另外,如果所有的應用程序使用更高的內存和CPU的數量,有沒有機會應用程序將被關閉的Android操作系統?

不管的RAM和CPU量的,該應用程序的處理可以由Android在任何點處終止時,它是在背景中。

1

區分應用程序本身和被遮擋的Activity很重要。 Activity只是應用程序的一部分。當Activity被隱藏時,某些lifecycle methods被稱爲depdning它是部分隱藏()還是完全隱藏(onStop)。這並不一定會影響您在Activity被遮擋之前啓動的後臺進程。即使隱藏了Activity,該應用仍然存在。在給定的Activity前臺運行時,後臺線程和服務將作爲現有應用程序進程的一部分繼續運行(假設操作系統資源不足)。

你應該做的是思考如何在其他生命週期方法(例如onResume)內處理這些後臺進程的結果應該他們完成durring或模糊狀態結束後。

相關問題