我很好奇当工作线程尝试在UI上更改某些内容时Android如何处理这种情况。我的猜测是有一些消息队列(但是来自UI队列的不同的一个由handler + looper管理)并且系统在尝试发布消息时检查线程id。所以,我会非常感谢任何提示。
答案 0 :(得分:1)
查看其中一个堆栈跟踪,似乎所有修改(使View
无效并使其需要重绘)的调用View
最终会在android.view.ViewRootImpl
类中出现:
视图层次结构的顶部,在View和WindowManager之间实现所需的协议。
在该类中,在允许更改视图之前,使用getThread()
方法检查线程标识。