0
我目前有一個listview
,當您點擊一個項目時,它將運行一個service
並帶有一個mediaplayer
。如果我點擊listview
中的另一項目,運行中的service
應停止並運行新的service
。處理這個問題的最佳方法是什麼?是否會使用onDestroy
?非常感謝。Android-在列表視圖中點擊物品時銷燬媒體播放器服務
我目前有一個listview
,當您點擊一個項目時,它將運行一個service
並帶有一個mediaplayer
。如果我點擊listview
中的另一項目,運行中的service
應停止並運行新的service
。處理這個問題的最佳方法是什麼?是否會使用onDestroy
?非常感謝。Android-在列表視圖中點擊物品時銷燬媒體播放器服務
如果你問我,你不應該停止並重新啓動這樣的服務,但我不知道確切的情況,因爲它可能是你的應用程序的必要性。
你應該調用在context.stopService(yourServiceIntent)
你的ListView的onItemClick()
然後重新啓動在同一onItemClick()
使用putExtra()
新的輸入服務。
但我仍然建議您找到一個替代此服務停止和重新啓動過程,因爲它可能會通過減少響應時間影響您的應用程序的性能。
所以我嘗試了你的建議,現在的問題是,如果服務沒有運行,那麼應用程序將ANR。有沒有辦法來檢測服務是否正在運行,如果它是然後停止它? – Splitusa
@SergioRa是的,您可以在啓動服務時將標誌設置爲true,並在停止服務時將其設置爲false,並在重新啓動服務之前檢查該標誌是否設置爲true,然後不重新啓動它,如果爲false,則調用startService () 方法。我知道國旗是一些人混淆的關鍵詞。這裏通過標誌我的意思是聲明一個布爾類型的簡單變量,例如 'boolean isServiceRunning'並初始設置爲false,然後根據您的服務狀態更改它的值。 – Varundroid
明白了。非常感謝你的幫助。真的很感謝 – Splitusa