使用CountDownTimer与片段

时间:2014-12-27 17:17:17

标签: android fragment countdowntimer

我有一个正常运行在片段中的CountDownTimer。当我尝试旋转手机时,我不会在timerView TextView上显示倒计时。

这是CountDownTimer的代码

 private void startTimer(int min, int sec) {

        countDownTimer = new CountDownTimer(min, sec) {

            @Override
            public void onTick(long millisUntilFinished) {
                timerView.setText("" + String.format("%d min, %d sec",
                        TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished),
                        TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
                                TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
                mills = millisUntilFinished;


            }

            @Override
            public void onFinish() {
                Toast.makeText(mContext, "TIME OVER", Toast.LENGTH_SHORT).show();

            }
        }.start();

    }

这是onPause回调中的代码

    @Override
    public void onPause() {
        Log.i(TAG, getClass().getSimpleName() + ":onPause()");

        super.onPause();
        countDownTimer.cancel();

    }

这是onResume CallBack中的代码

@Override
    public void onResume() {
        super.onResume();
        if(countDownTimer!=null)
            startTimer(mills,sec);
        Log.i(TAG, getClass().getSimpleName() + ":onResume()");



    }

通过这种方式,我取消onPause事件中的倒计时,并在onResume事件中以剩余毫秒开始新的倒计时。 我注意到使用了一个日志,在onResume之后onTick回调正在工作,但是视图没有更新。我尝试使用invalidate但没有任何好结果。 管理片段中倒数计时器的正确方法是什么?

0 个答案:

没有答案