2013-08-05 103 views
0

我有一個Android應用程序,它應該始終在後臺處於活動狀態。我已經將它構建爲普通的Android應用程序。它工作得很好,但是,有時它會自行停止(或通過Android操作系統),並且必須重新運行它。這不是因爲造成錯誤,這是因爲它可能是一個正常的應用程序。應用程序本身(或通過Android操作系統)停止

我該如何在後臺進行工作?

UPDATE

應用程序具有GUI。

+2

你應該使用服務 – Geros

回答

1

由於內存限制,Android操作系統可能在任何給定時間終止進程,您可以學習how Android manages memory here。由於@Karakuri提到開始一項服務會使它不太可能被終止,另一個使用服務的優點是,即使在它被殺死的情況下,當內存限制允許時,操作系統也會嘗試恢復:

注意這意味着大部分時間你的服務正在運行,如果系統在高內存壓力下可能會被系統殺死。如果發生此 ,系統將稍後嘗試重新啓動該服務。

您可以從Android dev site瞭解有關服務的更多詳細信息。

+0

可以一個服務有GUI嗎? –

+0

不,如果它有GUI,它不再是服務。您可以將「活動」和「服務」組合在一起,其中「活動」提供了GUI,服務提供了後臺功能。你可以檢查這個[StackOverflow問題](http://stackoverflow.com/questions/14695537/android-update-activity-ui-from-service)關於如何推動從服務到活動的變化的想法。 – Kai

1

創建服務並致電startForeground()使其成爲前臺服務。它不會阻止它被殺,只是使它不太可能,因爲Android會試圖保持它比非前臺服務更長的時間。請注意,使用前臺服務時,您需要在狀態欄上使用圖標進行持續通知。

1

假設您正在使用Service。如果您從服務的onStartCommand()返回START_STICKY,那麼即使android必須終止該服務,只要資源空閒,它就會重新啓動。

+1

可以有服務有GUI嗎? –

+0

@MariusKavansky服務不能像活動一樣直接顯示視圖,但服務可以顯示活動通知(在狀態欄中),這樣做會使其成爲前臺服務。 –

+0

我需要這個應用程序有GUI。 –

相關問題