2011-07-15 27 views

回答

0

如果你問我,你不應該停止並重新啓動這樣的服務,但我不知道確切的情況,因爲它可能是你的應用程序的必要性。

你應該調用在context.stopService(yourServiceIntent)你的ListView的onItemClick()然後重新啓動在同一onItemClick()使用putExtra()新的輸入服務。

但我仍然建議您找到一個替代此服務停止和重新啓動過程,因爲它可能會通過減少響應時間影響您的應用程序的性能。

+0

所以我嘗試了你的建議,現在的問題是,如果服務沒有運行,那麼應用程序將ANR。有沒有辦法來檢測服務是否正在運行,如果它是然後停止它? – Splitusa

+0

@SergioRa是的,您可以在啓動服務時將標誌設置爲true,並在停止服務時將其設置爲false,並在重新啓動服務之前檢查該標誌是否設置爲true,然後不重新啓動它,如果爲false,則調用startService () 方法。我知道國旗是一些人混淆的關鍵詞。這裏通過標誌我的意思是聲明一個布爾類型的簡單變量,例如 'boolean isServiceRunning'並初始設置爲false,然後根據您的服務狀態更改它的值。 – Varundroid

+0

明白了。非常感謝你的幫助。真的很感謝 – Splitusa