2

私はダウンタイムカウンターのこのコードを持っています:

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();これを呼び出すと2行が停止することです:

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

1 に答える 1

1

おそらくmp.start()独自のスレッドを開始し、 をキャンセルしてもバックグラウンドで実行されますcountDownTimer

キャンセルまたは停止してみてくださいmp

于 2013-04-27T19:32:16.143 に答える