如何.release()由RingtoneManager实例化的MediaPlayer?

Ser*_*bak 3 android android-mediaplayer

我在我的活动中获得了默认铃声:

remindRingtoneView = (TextView) findViewById(R.id.remind_ringtone);

remindRingtoneView.setText(RingtoneManager.getRingtone(
            NewReminder.this, ringtone_uri).getTitle(
            NewReminder.this));
Run Code Online (Sandbox Code Playgroud)

在这一行之后,我在LogCat中有一个带有tag ='Ringtone'和message =的调试行

'Successfully created a local player'.

当我完成Activity和系统垃圾收集器时,我在LogCat =中得到了一条警告消息

'MediaPlayer finalized without being released'.
Run Code Online (Sandbox Code Playgroud)

我该怎么发布呢?

答案是:

Ringtone remind_ringtone = RingtoneManager.getRingtone(
            NewReminder.this, ringtone_uri);        
remindRingtoneView.setText(remind_ringtone.getTitle(NewReminder.this));
remind_ringtone.stop();
Run Code Online (Sandbox Code Playgroud)

Gan*_*esh 6

在您的程序中,RingtoneManager.getRingtone将一个对象返回给Ringtone类.如果我们考虑这个对象mRingTone,那么调用mRingTone.stop()将释放该MediaPlayer对象.