我正在尝试使用 MediaController 并对其进行更改,以使其在 3 秒后不会消失。我在一个相关问题中找到了这段代码,我正在使用它:
mediaController = new MediaController(this) {
@Override
public void hide()
{
mediaController.show();
}
};
此代码有效,但是当活动停止时(使用后退按钮),我从以下代码中 show(0) 语句中添加的视图中收到有关泄漏窗口的日志错误:
public void onPrepared(MediaPlayer mediaPlayer) {
mediaController.setMediaPlayer(this);
mediaController.setAnchorView(findViewById(R.id.audio_control));
handler.post(new Runnable() {
public void run() {
mediaController.setEnabled(true);
mediaController.show(0);
}
});
}
在我看来,通过简单地调用 show 方法来覆盖 hide 方法意味着 hide 方法在完成活动时没有执行所需的操作。我必须覆盖其他必要的功能,比如隐藏控制器!
我想在必要时隐藏控制器(例如在完成它时),但不是在 3 秒后它被简单地隐藏(并且活动没有完成)的情况下。
或者也许我应该让控制器在 3 秒后一直消失,但我不确定我是否理解它为什么会以这种方式实现。对我来说,一直把它放在那里似乎更好。