Java 如何重复一项任务直到某个时间或收到答复?
我希望我的ui线程运行ansycTask(例如获取当前位置) 但是我想限制时间。你建议怎么做 我曾想过触发计时器,但我不知道如何触发 另外,如果我想重复一个返回布尔值的异步任务 我想给它三次重试的机会 我如何实现这一点 我曾经考虑过做一些文章,检查一个静态标志,表明已经收到了答案,但我不确定这是正确的方法。一种方法。这将允许您在计划的时间运行线程。您可以使用方法Java 如何重复一项任务直到某个时间或收到答复?,java,android,android-asynctask,Java,Android,Android Asynctask,我希望我的ui线程运行ansycTask(例如获取当前位置) 但是我想限制时间。你建议怎么做 我曾想过触发计时器,但我不知道如何触发 另外,如果我想重复一个返回布尔值的异步任务 我想给它三次重试的机会 我如何实现这一点 我曾经考虑过做一些文章,检查一个静态标志,表明已经收到了答案,但我不确定这是正确的方法。一种方法。这将允许您在计划的时间运行线程。您可以使用方法scheduleWithFixedDelay在指定时间运行任务 通过实现Runnable来创建任务。使用Executor方法schedu
scheduleWithFixedDelay
在指定时间运行任务
通过实现Runnable
来创建任务。使用Executor方法scheduleWithFixedDelay(Runnable命令,
长时间的延迟,
久拖不决,,
时间单位)
执行者将在您指定的时间后执行您的任务。在您的任务中,您可以检查任务是否正确,是否应该重试。满足条件或达到重试次数后,可以取消任务。您可以使用shutdown
方法结束任务
实现这一点的简单类:
class RetryTask implements Runnable {
int retries = 3;
@Override
public void run() {
if(--retries == 0) {
//shutdown
}
if(location recieved) {
//shutdown
}
//else do your task
}
}