我有一个像这样的可运行类:
public class GetUpdatesThread implements Runnable{
@Override
public void run() {
//call a webservice and parse response
}
}
例如我每10秒就要开一次......
我想知道如何在我的活动中管理处理程序或runnables或计时器来完成此操作?
提前致谢!
答案 0 :(得分: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);
答案 1 :(得分:3)
您可以使用此link中名为scheduleAtFixedRate的计时器方法。我已经在我的项目中使用它,它就像魅力一样。你只需要给它一个启动延迟时间和一段时间然后就可以了。
答案 2 :(得分:0)
您可以使用处理程序并调用sendEmptyMessageDelayed方法。这是使用Handler的tutorial或two。另请查看官方文档中的Updating the UI from a Timer - 它涵盖了使用TimerTask和Handler的两种方法。
答案 3 :(得分:0)
执行此操作的最佳方法是使用AlarmManager类。
1)使用serRepeat方法安排AlarmManager。 link for AlarmManager
2)在Alarmmanager中设置广播接收器,它会在每个特定的持续时间内调用Receiver,现在从Receiver你可以启动你的线程。
如果你使用Timer任务和其他调度程序,Android会在一段时间后终止它们。