给定布尔值isCondition
将由异步任务更新,我如何使Android Activity
在此条件下等待而不阻塞执行?
在普通的Java中,在循环内使用Thread.sleep()
效果很好,但是我不确定在Android中使用它的安全性。
更新isCondition
变量的异步任务位于外部库中,该库从我的控件中抽象出来。我不希望这种无休止的民意调查阻止或减慢其他任务的执行速度,或占用过多的处理时间,而是将执行释放给可能需要运行的其他线程。
(我正在使用API 25)
最佳答案
暂停/休眠主UI线程不是一个好主意,因为它将停止所有UI交互处理,通常会触发“应用程序无响应”(ANR)对话框。
您可以实现AsyncTask
类,并在isCondition
方法中获取onPostExecute
值,然后执行所需的操作。 official doc gives a good example
。
编辑
注意您的注释,您可以运行TimerTask来重复查询isCondition
值。