我有一个单独的线程来处理一些信息,如果在执行过程中出现问题,需要让用户知道错误,所以现在我调用runOnUIThread()来创建一个Dialog并让用户知道。我的问题是什么时候会发生这种情况? runOnUIThread()中的指令是在调用后立即发生的,还是等待UI线程完成它当前正在执行的操作?
我问,因为我将使用图形,为了定期更新屏幕,UI线程将被循环占用,以便我知道更新和重绘屏幕。
答案 0 :(得分:6)
runOnUIThread()中的指令一旦被调用就会发生
没有
还是等待UI线程完成它当前正在做的事情?
在某种程度上,甚至没有。主应用程序线程(a.k.a.,UI线程)具有工作队列。 runOnUiThread()
将您的Runnable
发布到该队列。当Runnable
到达队列的头部时,它就会运行。因此,Runnable
运行时取决于该队列的大小。