给定一个将由异步任务更新的 boolean 条件 isCondition
,如何让 Android Activity
等待此条件而不阻塞执行?
在普通的java中,在循环内使用Thread.sleep()
效果很好,但我不确定这在Android中使用有多安全。
更新 isCondition 变量的异步任务位于外部库中,该库是从我的控制中抽象出来的。我不希望这种无休止的轮询阻止或减慢其他任务的执行,或者占用太多处理,而是将执行释放给可能需要运行的其他线程。
(我使用的是 API 25)
最佳答案
暂停/ sleep 主 UI 线程不是一个好主意,因为它会停止所有 UI 交互处理,通常会触发“应用程序未响应”(ANR) 对话框。
你可以实现AsyncTask
类,并在onPostExecute
方法中获取isCondition
值,然后做你想做的事情。 official doc gives a good example
.
编辑
注意你的评论,你可以运行 TimerTask重复查询 isCondition
值。
关于java - Android: Activity 等待 boolean 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52232858/