Android CountDownTimer作为单独的类

时间:2011-11-11 22:59:37

标签: java android class timer listener

我创建了自己的类,扩展了CountDownTimer。由于我经常使用它,我希望将该类放在自己的java文件中。

但是,我不知道计时器类与创建它的类进行通信的方法。

示例:类A的textView显示一些秒数。所以,A类创建了计时器。

  • 如何告诉CountDownTimer中的onTick()方法更新我的 textView与当前时间?
  • 我的A班怎么知道计时器何时结束?

我确信这是一个简单的答案,我对线程,处理程序,听众以及其他巫师正在做的其他事情知之甚少。

2 个答案:

答案 0 :(得分:1)

使用常规倒数计时器应该非常相似 - 只需将您的子类替换为常规计时器实例。此外,将活动传递给构造函数,以便它可以执行更新显示所需的任何操作。

E.g。

    mCountDownTimer = MyCountDownTimer(totalMsecs, callInterval, this).start();

MyCountownTime会有这样的方法:

        public void onTick(long millisUntilFinished) {

            float fraction = millisUntilFinished / (float) totalMsecs;

                        // myActivity is passed in the constructor
            mMillisUntilFinished = millisUntilFinished;

            // progress bar is based on scale of 1 to 100;
            mActivity.progressBar.setProgress((int) (fraction * 100));

        }

        public void onFinish() {
                mMillisUntilFinished = 0;
            handleTimeOut();
        }

这假设在构造函数中传递了mActivity。我更改了代码,假设调用活动在计时器构造函数中作为变量传递,并设置为计时器类的成员。

答案 1 :(得分:0)

你可以:

  1. 将变量传递给它(如要更新的TextView或整个活动)
  2. 使用静态使用类中的变量(timer类可以直接访问它们)
  3. 实施回调机制