但是,我正在使用RingtoneManager来获取Ringtone



该信息已经包含在this question and answer中,但是Google员工除非已经知道要搜索的内容,否则不太可能找到它(至少我找不到)。

最佳答案

这是因为RingtoneManager.getRingtone()内部对返回的open()对象调用RingtoneRingtone.open()设置MediaPlayer,除非您手动调用MediaPlayer,否则此Ringtone.stop()不会被释放。请注意,您无需实际播放铃声即可。这似乎没有记录在任何地方。

我不知道忽略发布MediaPlayer有什么实际危害(documentation提供了最坏的情况),但是在让他们获取GC之前在stop()上手动调用Ringtone ed将至少使警告静音。

07-28 01:13