我正在制作音频播放器,除快进和快退按钮外,其他所有部件都在工作。
当我按住快进或快退按钮时,我不知道怎么做 - 它会增加进度,当松开时它会停止并开始播放该部分的音乐。
我写了这个:
forwardButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
while(v.isPressed()){
currentProgress.setProgress((currentProgress.getProgress()+1));
}
return false;
}
});
但是当我按住快进时,应用程序基本上陷入无限循环并挂起导致android给我选择等待或终止。
我想我需要在它上面实现Runnable并通过它来避免挂起,但我不知道该怎么做。
帮助?
变量:
forwardButton = Fast Forward button.
currentProgress = seekbar for music.
mPlayer = music player.
答案 0 :(得分:1)
不要这样做。相反,使用一个处理程序并在runnable中包含你的while bucle,它将在你的主线程上发布setProgress()
。每次发布正向订单时,延迟X秒,然后检查按钮是否一直点击,如果是,则重新发布可运行。