2012-03-26 82 views
8

我們可以在Android中安裝多個服務實例嗎?我想要一項可以讓手機在特定時間保持沉默的服務,並且我想要在特定時間內使用該服務使手機處於振動模式。所以基本上,如果我可以使服務多次運行,那麼不需要創建另一項服務來設置振動模式下的手機。另外,如果我們可以運行多個實例,請解釋如何停止它。任何代碼提示都會有所幫助。如何在Android中安裝多個服務實例

回答

25

我們可以在Android中有多個服務實例嗎?

號您可以擁有多個子類Service,但Service任何給定的子類必須在任何時候恰恰0或1個實例。

我想要一個可以讓手機在特定時間保持靜音的服務,並且我想要在特定時間內使用該服務使手機處於振動模式。

您不應該使用任何服務。請使用AlarmManagerBroadcastReceiver

+0

謝謝,我使用AlarmManager在某個時間間隔啓動服務。你能幫我理解BroadcastReceiver以及如何使用AlarmManager來使用它嗎? – 2012-03-28 14:24:55

+0

@SumitSahoo:你可以調用'getBroadcast()'來代替調用'getService()'來創建你的'PendingIntent'。而且,您的業務邏輯不在「Service」中,而是位於「BroadcastReceiver」中(通常通過「」元素在清單中註冊)。 – CommonsWare 2012-03-28 14:39:35

2

我不認爲服務可以用於這樣的目的。服務必須提供一些功能,但只有一個含義,不是爲了幾個不同的目的。爲了讓代碼簡單明瞭,創建更多的服務會更好。

2

你的問題不太合理。這聽起來像你想要做的是讓同一個服務的多個實例一次運行並執行不同的事情。但是,你的問題從根本上取決於服務不應該在很長時間內做事。相反,應該發生的是,他們收到一個意圖,或許會產生一個線索或其他東西,然後停止四處閒逛。請記住,服務仍然在主線程上運行,它不是後臺運行的,因此您不應該在那裏執行長時間運行的任務。你可能想看的是一個IntentService,它通過使用控制應該發生的意圖來協調你的活動。

相關問題