我有一個必須永久運行的後臺服務。該服務只需與我的活動進行交互。本地服務或遠程服務?
如何檢查活動恢復如果服務仍在運行?在服務類中有沒有比靜態變量更好的可能性?
在單獨的進程中使用遠程服務(以延長服務生命週期)是否有利,以便在活動進程被終止時服務仍然存在?
我有一個必須永久運行的後臺服務。該服務只需與我的活動進行交互。本地服務或遠程服務?
如何檢查活動恢復如果服務仍在運行?在服務類中有沒有比靜態變量更好的可能性?
在單獨的進程中使用遠程服務(以延長服務生命週期)是否有利,以便在活動進程被終止時服務仍然存在?
我有一個後臺服務必須 運行永久。
This is not possible。用戶或Android會在某個時候終止您的服務。請重新考慮你的架構。
如何檢查活動恢復如果 該服務仍在運行?
一般來說,你沒有。
在服務類中有比靜態變量更好的可能性嗎?
如果用戶或Android終止您的服務,那麼這將不起作用。
是它的優勢,在一個單獨的進程中使用遠程 服務(以 延長使用壽命的時間),以便當 活動過程中被殺死的 服務還活着?
遠程服務與活動被銷燬後服務是否運行無關。如果調用startService()
,運行服務,獨立於任何活動的,直到:
stopService()
stopSelf()
以及如果後臺服務仍在執行其工作,它希望用戶如何通知活動再次出現? – Sney 2010-07-22 13:57:58
@Snej:我不明白你的問題,對不起。 – CommonsWare 2010-07-22 23:52:44
對不起,我最後的評論有點混亂,直到我意識到它。問題是如何確定用戶何時重新啓動應用程序,以確定後臺服務是否仍在運行或已被終止。 通過Macarse的回答一個意圖可以拋出服務。但是,我怎麼才能知道該服務是重新啓動還是仍在運行? – Sney 2010-08-20 20:45:47
爲什麼你想知道服務是否正在運行? 如果你需要一些東西,只要扔一個Intent
,如果它沒有運行,它將從意圖開始。
與第二個問題關係:
您的服務不會「死」的時候你的活動關閉。
在startforeground()
開始服務。它會增加服務的時間。
'adb bugreport'告訴我,我的服務崩潰太多並被銷燬 – OneWorld 2010-12-21 14:31:02