在再次执行之前等待5分钟

Bra*_*don 2 java android google-maps sleep

所以我正在编写一个Android应用程序,并希望有一个功能,检查每分钟左右询问位置数据(尚未确定的频率).我知道我可以创建一个线程并让它睡觉,但我真的不喜欢这个选项,因为我必须为那个函数创建线程然后锁定它以便它不能被任何东西使用一个线程.我想到的另一个选择是只有一个无限循环来检查时间是否已经过去,但这会引发更严重的问题.

所以我的问题是,是否有更好的方法使循环在再次执行之前等待指定的时间段?

xan*_*ndy 6

使用处理程序:

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);
}
Run Code Online (Sandbox Code Playgroud)