2010-08-30 38 views
6

因此我瞭解服務生命週期和所有這一切。但我很困惑startId參數的作用是什麼?Android服務startId參數

public int onStartCommand (Intent intent, int flags, int startId) 

我得到它配合使用stopSelf(int),但我沒有看到什麼點或者正在生成startId。什麼用例會使用stopSelf(int)?

回答

4

什麼用例會使用stopSelf(int)?

第1步:致電startService()

第2步:致電startService()再次

第3步:致電stopSelf()

在這一點上,我們想不能停止服務,既然還有工作突出,用第二個startService()來代表。我們希望startService()stopSelf()調用匹配。

+0

哦,我想我明白了。我想我正在推翻這一點。所以,只要onStartCommand()被執行,我們就會將startId存儲到一個全局變量中,然後在該全局變量上調用stopSelf(int)。好的。我試圖考慮將ID放入同步隊列或其他東西lol – Falmarri 2010-08-30 07:01:18

+1

@Falmarri:「所以只要onStartCommand()被執行,我們就會將startId存儲到一個全局變量中」 - 否,因爲會有幾個這樣的變量。您可能希望檢查「IntentService」並考慮這是否是您使用的更好的基類。它處理'stopSelf(int)'調用本身,以及其他功能。 – CommonsWare 2010-08-30 07:06:24

+0

嗯,那我想我還是很困惑。你將如何去處理它自己?有沒有例子?我在任何示例中都沒有看到startId的使用 – Falmarri 2010-08-30 07:16:27