我有停机时间码的代码:
CountDownTimer CountdownTimer = new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
txttime.setText( millisUntilFinished / 1000);
play_sound();
}
public void onFinish(){
timeout_stage(); //call an activity
}
}.start();
我的问题是,当我打电话给CountdownTimer.cancel();
时,这两行应该停止:
txttime.setText( millisUntilFinished / 1000);
play_sound();
但是现在,将文本设置为txttime会停止但播放声音不会!为什么呢?
这是我的play_sound();
public void play_sound(){
MediaPlayer mp;
mp = MediaPlayer.create(MainActivity.this, R.raw.success);
mp.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
mp.start();
}
答案 0 :(得分:1)
可能mp.start()
启动自己的线程,即使你取消countDownTimer
,它也会在后台运行。
尝试取消或停止mp
。