Pausar / retomar CountDownTimer Android

É possível pausar um CountDownTimer no Android? Eu estava procurando por boas soluções, mas apenas encontrei algumas maneiras de fazer isso que realmente não gosto. Como apenas salve o tempo restante em uma variável e inicialize um novo CountDownTimer com esses valores.

Esse tipo de solução funciona, mas não ficou tão bom porque estou usando uma barra de progresso circular e um Textview junto com o meu countdownTimer. Foi realmente feio tentar parecer bonito com o CountDown, sem poder "pausar" realmente.

Aqui está o meu código para inicializar o CountDownTimer com um ProgressBar e um TextView.

    public void initProgress() {
    if (mCountdownProgressBar == null)
        mCountdownProgressBar = (CircleProgressBar) findViewById(R.id.progressBar);

    mCountDownTime = 30000; //Insert your desire time in Milliseconds here
    mCountdownProgressBar.setMaxProgress((int)TimeUnit.MILLISECONDS.toSeconds(mCountDownTime));
    mCountDownTimer = new CustomCountDownTimer(mCountDownTime, 1000) {

        @Override
        public void onTick(long millisUntilFinished) {
            Log.v("Log_tag", "Tick of Progress" + TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished));
            mCountdownProgressBar.setmProgress(TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished));
            mTimer.setText(Util.getTimeForTimer(millisUntilFinished, Util.TIME_FORMAT));
        }


        @Override
        public void onFinish() {
            mCountdownProgressBar.setmProgress(0);
            mTimer.setText(Util.getTimeForTimer(0, Util.TIME_FORMAT));
        }
    };
    mCountDownTimer.start();
}

Com esse código, você poderá definir uma progressBar e uma TextView junto com o CountDownTimer. Para poder pausar e retomar com facilidade, postarei a seguir uma Classe Personalizada para CountDownTimer.