在本文檔中,它是說:setStreamMute從未取消靜音
靜音指令是對客戶端進程死亡保護:如果對流活動靜音請求一個進程死亡,這個流將自動靜音。
給定流的靜音請求是累積的:AudioManager可以接收來自一個或多個客戶端的多個靜音請求,並且只有在接收到相同數量的取消靜音請求時,流纔會取消靜音。
那麼,第一段是真的;每當我的流程死亡時,我靜音的所有流都會自動取消靜音。 但是,無論我打電話多少次setStreamMute(someStream, false)
它永遠不會取消靜音。 我最後一次嘗試將它調用超過100萬次後,只有一次靜音,沒有任何事情發生!
只要提及 - 如果我用相同的方法取消靜音,則將其靜音 - 保持靜音。但在接下來的調用相同的方法 - 它永遠不會取消靜音。
我在Broadcast Receiver onReceive方法中靜音,我開始使用鬧鐘管理器。所以也許是因爲我的應用程序在屏蔽呼叫和非屏蔽呼叫之間的時間內被殺害了? (但我的應用程序仍然在RAM保持)
這個問題可能是因爲我沒有保持一個參考AlarmManager(每次獲得不同的實例?)
有沒有人遇到這樣的問題?
我正在使用Android 4.0版本和同樣的問題在這裏,看看http://stackoverflow.com/questions/14899395/how-to-mute-and-unmute-it-on-the-onpause- and-onresume –
保留對'AudioManager'的相同實例的引用(最好是作爲您的活動類的成員) – Jong