[英]How can i set any function to repeat after specific amount of time?
public void scheduleAtFixedRate(TimerTask任务,延迟长,周期长)。 这看起来很有希望,但我不知道如何使用它。 任何帮助将不胜感激。它在android开发者网站上。
也许这个演示可以帮助您:
import java.util.*;
public class TimerDemo {
public static void main(String[] args) {
TimerTask tasknew = new TimerScheduleFixedRateDelay();
Timer timer = new Timer();
timer.scheduleAtFixedRate(tasknew, 500, 1000);
}
public void run() {
System.out.println("working at fixed rate delay");
}
}
您需要在类中有一个称为“运行”的方法,该方法将被重复执行。
来源 。
您可以创建一个计时器任务并以固定的速率安排它,如下所示:
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
// This method is called in a fixed interval
}
};
timer.scheduleAtFixedRate(task, delay, period);
如果需要与TimerTask
的UI进行交互,则应按以下步骤进行操作:
TimerTask task = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
// Interact with UI here
}
});
}
};
public void scheduleAtFixedRate(TimerTask task,
long delay,
long period)
Android文档在这里 。
参数 :
任务( TimerTask
)是将在每个period
毫秒内永久执行的代码。 Delay
是Timer
应等待直到TimerTask
启动的时间(以ms或Date为单位)。
您应该记住Timer将在与UI线程不同的线程中运行,因此,如果您需要更新UI,则应使用runOnUiThread等。(请参阅Xaver Kapeller答案)
这可能是一个例子
TimerTask tasknew = new TimerTask()
{
@Override
public void run()
{
/* Something here */
}
};
Timer timer = new Timer();
timer.scheduleAtFixedRate(tasknew, 500, 1000);
我注意到这里每个人都只是发布了一个示例,因此它只是带有解释的扩展。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.