Android规定访问UI只能在主线程中进行。
ViewRootImp 对线程进行了校验,非UI线程操作UI会抛出异常;系统为什么不允许在子线程中访问UI呢?
因为Android的UI控件不是线程安全的,如果在多线程中并发访问可能会导致UI控件处于不可预期的状态。那为什么不对UI控件的访问加上锁机制呢?
- 锁机制会让逻辑变得复杂;
- 锁机制会降低UI访问的效率;
Android规定访问UI只能在主线程中进行。
ViewRootImp 对线程进行了校验,非UI线程操作UI会抛出异常;
系统为什么不允许在子线程中访问UI呢?
因为Android的UI控件不是线程安全的,如果在多线程中并发访问可能会导致UI控件处于不可预期的状态。
那为什么不对UI控件的访问加上锁机制呢?