public void scheduleAtFixedRate(TimerTask任务,长延迟,长时间段)。这看起来很有希望,但我不知道如何使用它。任何帮助将不胜感激。它是在Android开发者网站上。
答案 0 :(得分:1)
也许这个演示可以帮助你:
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");
}
}
您需要在班级中使用名为“run”的方法,该方法将重复执行。
答案 1 :(得分:0)
您可以创建一个计时器任务,并以固定的速率安排它,如下所示:
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
中的用户界面进行互动,您应该这样做:
TimerTask task = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
// Interact with UI here
}
});
}
};
答案 2 :(得分:0)
public void scheduleAtFixedRate(TimerTask task,
long delay,
long period)
Android doc here。
<强>参数强>:
任务(TimerTask
)是每隔period
毫秒将永久执行的代码。 Delay
是Timer
应该等到TimerTask
开始的时间(以毫秒或日期为单位)。
你应该记得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);
我注意到这里每个人都发布了一个例子,所以这只是一个带有解释的扩展。