80,351
社区成员
发帖
与我相关
我的任务
分享
if (v == mNext) { // 下一首
stopProgressUpdate();
playMusic(MusicService.NEXT_ACTION);
// 开始播放,按钮显示为暂停
mPlay.setImageResource(R.drawable.pause);
playPauseStatus = 1;
startProgressUpdate();
}
public void startProgressUpdate() {
// 开辟Thread 用于定期刷新SeekBar
if (dThread == null) {
// 创建线程
dThread = new DelayThread(200);
dThread.start();
} else {
// 恢复线程
synchronized(this) {
dThread.notify();
}
}
mbSeekBarUpdateFlg = true;
}
// 延迟处理
public class DelayThread extends Thread {
private int milliseconds; // 延迟的时间
public DelayThread(int i) {
milliseconds = i;
}
public void run() {
while(!mbSeekBarStopFlg) {
if (mbSeekBarUpdateFlg) {
try {
sleep(milliseconds);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 延迟指定的时间后,执行更新播放时间
mHandle.sendEmptyMessage(0);
} else {
synchronized(this){
try {
dThread.wait(); // 暂停线程
}catch(InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
}
public void stopProgressUpdate() {
// 停止Thread,停止刷新SeekBar
mbSeekBarUpdateFlg = false;
}