在倒数计时器内播放声音不会停止

时间:2013-04-27 19:21:37

标签: java android

我有停机时间码的代码:

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();
}

1 个答案:

答案 0 :(得分:1)

可能mp.start()启动自己的线程,即使你取消countDownTimer,它也会在后台运行。

尝试取消或停止mp