Pausa / Reanudar CountDownTimer Android

¿Es posible pausar un CountDownTimer en Android? He estado buscando buenas soluciones, pero solo encuentro algunas formas de hacerlo que realmente no me gustan. Tan solo guarde el tiempo restante en una variable e inicialice un nuevo CountDownTimer con esos valores.

Ese tipo de soluciones funcionan pero no se veían tan bien porque estoy usando una barra de progreso circular y una vista de texto junto con mi cuenta atrás. Fue realmente feo tratar de lucir bien estos dos con CountDown sin poder realmente "pausarlo".

Aquí está mi código para inicializar el CountDownTimer con un ProgressBar y un 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();
}

Con este código, podrá establecer una barra de progreso y una vista de texto junto con su CountDownTimer. Para poder pausar y reanudarlo bastante fácil, publicaré a continuación una Clase personalizada para CountDownTimer.

Respuestas a la pregunta(1)

Su respuesta a la pregunta