4

如果Service正在以不同進程運行(通過內部清單中的「:name」)並帶有前景標誌。在當系統想釋放一些內存的場合。(想象一下重UI,用戶按下Home和導航到其他重型應用)當Android的內存不足時,前臺服務(不同進程/相同進程)如何運行

  1. 將它用於這個應用程序釋放資源殺人,就在主過程? (顯然會使服務進程完好無損),然後在用戶導航迴應用程序時重新啓動主進程just

  2. 如果服務將在同一個進程中運行,它是否會釋放除前臺服務之外的所有資源(如活動)?在這種情況下,或者整個過程(重UI)將被視爲前景,因此消耗了大量的內存和不善待用戶的手機

P.S

我瞭解前臺的服務沒有保證。 http://developer.android.com/reference/android/app/Service.html

我明白殺死進程的Android設計即刻 (哪種答案第二個問題,但要確保)

http://android-developers.blogspot.com/2010/04/multitasking-android-way.html

+0

關於(2)的小記:我從myActivity開始了一個前臺服務。即使我在myActivity上調用finish(),最終導致對activity的onDestroy()調用,前臺服務仍在運行(除非我在onDestroy中明確停止它)。 –

回答

1
  1. 如果不是在前臺的主要過程,它會在需要時被殺死並重新啓動。如果需要,前臺服務也可能會被終止,但在所有後臺進程被終止之前不會被終止。只要Memeory重新可用,前臺服務就會重新啓動。

  2. 是的,它會釋放所有資源並嘗試離開服務運行。如果整個過程需要終止,服務也可能會被終止。只有服務正在運行,進程纔會重新啓動。

相關問題