2012-03-01 63 views
1

我在Android中的網絡連接更改時啓動BroadCast Receiver。 BroadCast Receiver啓動一個處理異步任務以從服務器獲取數據的服務。這個問題有點奇怪,當我在我的設備中測試服務OnCreate方法是第一次運行「萬歲!」但是當我斷開網絡並再次嘗試連接。廣播是已讀但不是服務。我在這裏錯過了什麼嗎?或者這是一個錯誤?或者當我開始我的服務時是否應該有任何意圖行動?請幫幫我。Android服務類 - OnCreate僅被調用一次

+0

我還可以注意到,OnStart方法工作正常,並開始每次調用而不是在OnCreate時間!有人能告訴我這是爲什麼嗎? – Wesley 2012-03-01 07:20:22

回答

7

的服務的onCreate方法只運行一次,直到服務的整個生命週期。但是,通過調用startService可以多次調用onStartCommand方法。如果您的服務是銷燬然後再次運行,將再次調用onCreate

這是this文檔講述:

onCreate()

The system calls this method when the service is first created, to perform one-time setup procedures (before it calls either onStartCommand() or onBind()). If the service is already running, this method is not called.

+0

嘿,非常感謝你的回答! – Wesley 2012-03-01 07:56:29

+0

只有一次在onCreate?我調試我的應用程序,每次打電話 – delive 2016-02-24 09:58:48

+0

現在我試着用我的調試,我沒有看到互聯網增量...我很困惑... – delive 2016-02-24 10:14:04

2

onCreate服務的方法將在您第一次啓動服務時被調用。

除非你停下來stopServicestopSelf方法的服務,該服務將運行和的onCreate將不會被再次調用。

onStartCommand將在每次調用startService

知道更多的時間稱爲:Android Services

+0

即使在使用stopService/stopSelf完成我的服務時,是否有辦法讓onCreate被調用? – 2013-05-16 14:31:00

相關問題