1

我有一个这样的可运行类:

public class GetUpdatesThread implements Runnable{

@Override
public void run() {
     //call a webservice and parse response

}

}

例如,我希望每 10 秒触发一次...

我想知道如何在我的活动中管理处理程序或可运行对象或计时器以完成此操作?

提前致谢!

4

4 回答 4

3

您可以使用TimerTask并可以像这样实现。

int delay = 5000; // delay for 5 sec.
int period = 10000; // repeat every 10 secs.

Timer timer = new Timer();

timer.scheduleAtFixedRate(new TimerTask() {

public void run() {

System.out.println("repeating");

}

}, delay, period);
于 2012-06-01T10:58:45.990 回答
3

您可以使用此链接中称为 scheduleAtFixedRate 的计时器方法。我已经在我的项目中使用它,它就像魅力一样。你只需要给它一个启动延迟时间和一个周期就可以了。

于 2012-06-01T11:03:31.567 回答
0

您可以使用 Handler 并调用sendEmptyMessageDelayed方法。这是关于使用 Handler的一两个教程。还可以从官方文档中查看从 Timer 更新 UI - 它涵盖了 TimerTask 和 Handler 两种方法。

于 2012-06-01T10:59:11.663 回答
0

做这件事的最好方法是使用 AlarmManager 类。

1) 使用 serRepeat 方法安排一个 AlarmManager。警报管理器的链接

2)在Alarmmanager中设置广播接收器,它会在每个特定的时间段调用接收器,现在你可以从接收器开始你的线程。

如果您使用 Timer 任务和其他调度程序,Android 会在一段时间后杀死它们。

于 2012-06-01T11:05:47.820 回答