给定布尔值isCondition将由异步任务更新,我如何使Android Activity在此条件下等待而不阻塞执行?

在普通的Java中,在循环内使用Thread.sleep()效果很好,但是我不确定在Android中使用它的安全性。

更新isCondition变量的异步任务位于外部库中,该库从我的控件中抽象出来。我不希望这种无休止的民意调查阻止或减慢其他任务的执行速度,或占用过多的处理时间,而是将执行释放给可能需要运行的其他线程。

(我正在使用API​​ 25)

最佳答案

暂停/休眠主UI线程不是一个好主意,因为它将停止所有UI交互处理,通常会触发“应用程序无响应”(ANR)对话框。

您可以实现AsyncTask类,并在isCondition方法中获取onPostExecute值,然后执行所需的操作。 official doc gives a good example


编辑
  注意您的注释,您可以运行TimerTask来重复查询isCondition值。

10-04 17:32