繁体   English   中英

Android CountDownTimer作为单独的类

[英]Android CountDownTimer as a Separate Class

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

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

示例:类A具有一个显示一定秒数的textView。 因此,类A创建了计时器。

  • 如何告知CountDownTimer中的onTick()方法以当前时间更新我的textView?
  • 我的A类同学如何知道计时器何时结束?

我敢肯定,这是一个简单的答案,我对线程,处理程序,侦听器以及您的向导正在编写的其他内容知之甚少。

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

例如

    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. 向其中传递变量(例如要更新的TextView或整个活动)
  2. 使类中的变量使用静态(计时器类可以直接访问它们)
  3. 实现回调机制

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM