所以我正在编写一个Android应用程序,并希望有一个检查每分钟左右询问位置数据的功能(尚未确定的频率)。 我知道我可以创建一个线程并让它睡觉,但我真的不喜欢这个选项,因为我必须为那个函数创建线程然后锁定它以便它不能被任何东西使用一个线程。 我想到的另一个选择就是只有一个无限循环来检查时间是否过去了,但这会引发更严重的问题。
所以我的问题是,是否有更好的方法让循环在再次执行之前等待一段指定的时间?
答案 0 :(得分:6)
使用handler:
final Handler handler = new Handler();
final long delay = 5 * 60 * 1000;
void executeSomething(){
handler.postDelayed(new Runnable(){
public void run(){
// do your work
if (continueToExecute){
executeSoemthing();
}
}
}, delay);
}
答案 1 :(得分:3)
回答你的问题,不是真的。但是,Android平台旨在支持这些类型的东西。对服务Android API page和计时器Android API page进行一些研究。
答案 2 :(得分:2)
您可以使用postDelayed(Runnable,long)
执行此操作。