Android 實現倒計時停止播放音樂功能

任務描述:
做音樂播放器的時候,需要實現一個定時停止播放的功能
所以需要實現倒計時,事件到了後通知service暫停音樂播放

解決方案:
使用了CountDownTimer,其構造函數如下:
CountDownTimer(long millisInFuture, long countDownInterval)

  • millisInFuture是倒計時的總時間,單位是ms
  • countDownInterval是回調public void onTick(long millisUntilFinished)方法的事件間隔,此方法的參數millisUntilFinished是設定的倒計時剩餘時間
  • 此外還有一個回調方法public void onFinish()是倒計時結束的時候調用的
  • 啓動定時器:countDownTimer.start();
  • 不再使用時記得撤銷定時器:countDownTimer.cancel();

Code:

//倒計時任務
CountDownTimer countDownTimer = new CountDownTimer(input_time * 60 * 1000, 1000) {
    @Override
    public void onTick(long millisUntilFinished) {
        rest_of_time = (double) millisUntilFinished / 1000.0 / 60.0;
    }

    @Override
    public void onFinish() {
        sendBroadcastOnCommand(MusicService.COMMAND_PAUSE);
    }
};
countDownTimer.start();

擴展:
實現倒計時還可以使用其他方法

  1. 使用Timer
    schedule(TimerTask task, Date firstTime, long period)
    三個參數分別是:
    要執行的任務
    第一次執行時延遲的時間
    以後每次執行的週期
    三個參數可以少寫,Timer類內部有重載
Timer timer = new Timer();
timer.schedule(new TimerTask() {
    @Override
    public void run() {
        //doSomething
    }
}, 1000);
  1. 使用handler,它可以延遲一段時間後發送message
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章