2012-05-20 25 views
14

從我的小android知識,我明白android操作系統可以在極端的內存條件下殺死我的服務。如果android重新啓動一個服務被onCreate再次調用?

我創建了返回START_STICKY的服務。該服務是爲了在後臺運行。

如果Android是要殺死我的服務,它會調用onDestroy

當它重新啓動時,它會調用onCreate

+0

http://developer.android.com/reference/android/app/Service.html - 這談到了生命週期 – user1378730

+0

尼斯問題艾哈邁德......我從同樣的困惑的痛苦,你得到確認的onCreate()當Android重新啓動服務時調用? –

+1

@PankajKumar是它重新啓動時被調用 – Ahmed

回答

12

看到這裏,開發指南。 http://developer.android.com/reference/android/app/Service.html#ProcessLifecycle

onCreate()僅在進程啓動時調用,可以是服務第一次運行,或者在重新啓動時被終止,實質上這在每次啓動時調用。每當客戶端調用startService()

onStartCommand()被調用。

當服務被破壞/完全停止,Android是應該調用onDestroy()上的服務。我認爲這可能不會發生(例如,流程不是通過Android系統殺死的)。在綁定服務的情況下,這是當沒有更多活動的客戶端活頁夾時。

編輯:onCreate()服務開始; onStartCommand()有人使用服務; onDestroy()服務被終止/停止。

4

如果有人致電Context.startService(),那麼系統將獲取 服務(創建它並調用,如果需要其onCreate()方法) ,然後調用其onStartCommand(意向,INT,INT)方法客戶端

提供的 參數...

服務可以同時起步,並沒有綁定到它的連接。在 這種情況下,系統將保留該服務,只要 要麼啓動或有一個或多個連接到它與 的Context.BIND_AUTO_CREATE標誌運行。一旦這兩種情況都不成立,就會調用服務的onDestroy()方法,並且服務有效終止 。從onDestroy()返回後,所有清理(停止線程,取消註冊接收器)應該完成。

http://developer.android.com/reference/android/app/Service.html

編輯:快速的答案。是的,對這兩個問題

相關問題