我正在構建一個由多個活動組成的安卓遊戲。當應用程序運行時,一些背景音樂正在播放。背景音樂由多個循環組成,一個接一個播放。跨活動背景音樂/檢測應用程序是否活動
所以我的問題是如何檢測何時停止背景音樂。如果用戶退出應用程序,關閉屏幕或切換到另一個應用程序,並且應在用戶返回到遊戲時重新打開該應用程序,則音樂應該停止。
我目前的做法是通知一個SoundManager類,它跟蹤活動活動。每當新活動開始時(onResume)和每次活動結束時(onStop),SoundManager都會增加一個內部計數器。如果計數器爲0,則聲音停止,並且如果計數器> 0,則聲音開始(如果它尚未播放)。
此外,SoundManager監聽ACTION_SCREEN_OFF/ACTION_SCREEN_ON事件以根據屏幕狀態關閉/打開聲音。 除一種情況外,此方法運行良好:如果我有時會關閉屏幕(我有50%的機會說),聲音會再次啓動,因爲顯然onResume會在屏幕關閉之前激活的活動。我不知道爲什麼會發生。
所以我的問題是: - 是否有一種較脆弱的方法來知道何時停止背景聲音? - 或者是有解決屏幕開/關問題的解決方法。
感謝您的幫助!