所以我想知道在java中是否有一种方法可以在特定时间间隔内运行一行。我目前正在开发一个 Android 应用程序,并尝试在同一行上运行几秒钟。
提前谢谢您。
最佳答案
检查它们,然后选择最适合您的:
Timer ScheduledExecutorService
我认为 Timer
更适合这种情况。
计时器 - 示例:
Timer timer = new Timer();
TimerTask task = new TimerTask()
{
@Override
public void run()
{
method();
}
};
// every 3 seconds
timer.schedule(task, 0, 3000);
<小时/>
ScheduledExecutorService - Android 文档中的示例:
Here is a class with a method that sets up a ScheduledExecutorService to beep every ten seconds for an hour:
import static java.util.concurrent.TimeUnit.*;
class BeeperControl {
private final ScheduledExecutorService scheduler =
Executors.newScheduledThreadPool(1);
public void beepForAnHour() {
final Runnable beeper = new Runnable() {
public void run() { System.out.println("beep");
};
final ScheduledFuture beeperHandle =
scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
scheduler.schedule(new Runnable() {
public void run() { beeperHandle.cancel(true); }
}, 60 * 60, SECONDS);
}
}}
所有这些都会创建一个线程,这样您就不会阻塞 UI 线程。
关于java - 尝试以特定时间间隔运行线路,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22513474/