java - Android: Activity 等待 boolean 条件

标签 java android

给定一个将由异步任务更新的 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/

相关文章:

android - 暂停时从服务更新 Activity 数据

java - 如果在 Java 中循环使用,try catch 子句会影响性能吗?

Android selectableItemBackground 背景色

android - emulator.exe 已停止工作?

java - Android 出现不兼容的类型。必需的 java.lang.String 找到 int

android - 为 fragment 制作自定义 ListView ?

java - 通过 edittext 将项目添加到 ListView

java - CXF服务客户端中的"IOException: Strange I/O stream"

Java SQLite : no such column error

java - 如何修复 Eclipse IDE 中的 Java 错误 "Unresolved compilation problem"?