最近在做一個(gè)音樂播發(fā)器,我把播放音樂這個(gè)功能寫在一個(gè)服務(wù)里,再和播放的界面進(jìn)行綁定,注意是BindService而不是StartService。當(dāng)我播放界面finish()后并且按理說服務(wù)也自動(dòng)銷毀了,但是音樂仍在播放,我用的是MediaPlayer類播放的音樂,不知道為什么,求大神告知。
3 回答

阿晨1998
TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊
BindService只要還有一個(gè)activity與這個(gè)服務(wù)綁定在一起,就不會(huì)被銷毀掉,必須等到所有activity都調(diào)用了unbound()
才可能被銷毀。
Service的生命周期圖
一個(gè)實(shí)戰(zhàn)經(jīng)驗(yàn)是,在activity的unBound()之前向Service發(fā)一條消息,告訴service這個(gè)activity要解綁了,這篇博文有一些源碼和介紹Android BoundService 進(jìn)程間通信
另外,Mediaplayer有沒有在service 的onDestroy里調(diào)用release()。

jeck貓
TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
添加回答
舉報(bào)
0/150
提交
取消