背景:自己写音乐播放器的时候,发现播放音乐时每次代码更新进度条都会触发SeekBar的onProgressChanged这个方法,更新当前播放歌曲的位置,导致歌曲播放又从更新的位置开始,后来发现如下解决方法:
SeekBar.setOnSeekBarChangeListener监听后,回调接口里面的方法@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean fromUser) {
if (fromUser) {//如果是用户行为触发的,才作相应操作
//todo something
}
}
注意: 上面的fromUser这个参数,当触发这个函数是由于用户拖拽行为造成的,那么fromUser就为True;如果是因为代码更新SeekBar的位置造成的,那么fromUser为false。