gpt4 book ai didi

java - Android - 定时器类

转载 作者:行者123 更新时间:2023-11-29 05:57:57 24 4
gpt4 key购买 nike

我正在制作一个 Android 应用程序(QR 码阅读器),我需要每秒执行 4 次操作。为此,我决定使用 Timer 类。我发现了它的一个奇怪行为:

timer = new Timer();
timer.scheduleAtFixedRate(onTimer, 100, stn.GetStep());
timer.cancel();
timer = new Timer();
timer.scheduleAtFixedRate(onTimer, 100, stn.GetStep());

最后一行抛出错误 - java.lang.IllegalStateException: TimerTask is scheduled already。是不是很奇怪?

最佳答案

不,它应该是这样工作的。 TimerTask 是一次性对象。如果您想再次安排代码,请创建一个新的 TimerTask。 (参见 documentation 。)

如果你不喜欢每次运行都创建一个全新的对象,你可以这样做

Runnable toRunRepeatedly = new Runnable() {
public void run() {
// your code goes here...
}
};

然后做

TimerTask tt = new TimerTask() {
public void run() {
// Delegate to the same runnable each time.
toRunRepeatedly.run();
}
};

相关问题:

关于java - Android - 定时器类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11328393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com