Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何重复一项任务直到某个时间或收到答复?_Java_Android_Android Asynctask - Fatal编程技术网

Java 如何重复一项任务直到某个时间或收到答复?

Java 如何重复一项任务直到某个时间或收到答复?,java,android,android-asynctask,Java,Android,Android Asynctask,我希望我的ui线程运行ansycTask(例如获取当前位置) 但是我想限制时间。你建议怎么做 我曾想过触发计时器,但我不知道如何触发 另外,如果我想重复一个返回布尔值的异步任务 我想给它三次重试的机会 我如何实现这一点 我曾经考虑过做一些文章,检查一个静态标志,表明已经收到了答案,但我不确定这是正确的方法。一种方法。这将允许您在计划的时间运行线程。您可以使用方法scheduleWithFixedDelay在指定时间运行任务 通过实现Runnable来创建任务。使用Executor方法schedu

我希望我的ui线程运行ansycTask(例如获取当前位置)

但是我想限制时间。你建议怎么做

我曾想过触发计时器,但我不知道如何触发

另外,如果我想重复一个返回布尔值的异步任务

我想给它三次重试的机会

我如何实现这一点

我曾经考虑过做一些文章,检查一个静态标志,表明已经收到了答案,但我不确定这是正确的方法。

一种方法。这将允许您在计划的时间运行线程。您可以使用方法
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
 }
}