-1

我玩了一下 CountDownTimer。但是,对于一个特殊的应用程序,我需要以下功能:

  1. 使用随机运行时间启动 CountDownTimer
  2. 完成时发出哔声
  3. 等待 5 秒
  4. 再次哔哔 GOTO 1。

这个过程应该用一个按钮开始,也应该用一个按钮取消。我在这里找到了带有循环 CountDownTimer 的帖子,但这不适用于随机运行时。

4

1 回答 1

1

好吧,我不会给你代码。那是你的功课。但是,我将解释这countDownTimer将如何工作。

设置 CDT 类后,创建一个新对象。

private static myCDT newTime;//static makes sure there's only one instance of the variable in the entire program
newTime = new myCDT(randNum*1000, 1000);

假设 randNum 为 10,则倒计时为 10 秒。

要生成随机数,请找出您想要的最大限制。我假设它是 50。所以 CDT 将有一个从 0 到 50 的选项。

int randNum=50*Math.random();

如果要排除 0 并希望最小值为1s

int randNum=1+49*Math.random();

现在还为按钮设置一个布尔变量。第一次单击时,将其设置为 true。暂时使用这个变量作为条件。现在,如果用户再次单击按钮,请将变量设置为 false。cancel()为您的 CDT 对象调用该函数newTime。现在onFinish()为您的 CDT 调用函数。这会将控制流返回到 while 循环,条件现在将为 false,因此循环停止。确保此循环位于按钮的单击侦听器函数中。或者在任何其他函数中,但一定要从点击监听器中调用它。

于 2013-05-17T14:58:30.967 回答