我玩了一下 CountDownTimer。但是,对于一个特殊的应用程序,我需要以下功能:
- 使用随机运行时间启动 CountDownTimer
- 完成时发出哔声
- 等待 5 秒
- 再次哔哔 GOTO 1。
这个过程应该用一个按钮开始,也应该用一个按钮取消。我在这里找到了带有循环 CountDownTimer 的帖子,但这不适用于随机运行时。
我玩了一下 CountDownTimer。但是,对于一个特殊的应用程序,我需要以下功能:
这个过程应该用一个按钮开始,也应该用一个按钮取消。我在这里找到了带有循环 CountDownTimer 的帖子,但这不适用于随机运行时。
好吧,我不会给你代码。那是你的功课。但是,我将解释这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,因此循环停止。确保此循环位于按钮的单击侦听器函数中。或者在任何其他函数中,但一定要从点击监听器中调用它。