邀您来答:为什么 Android 系统不建议子线程访问 UI?
发布于 2022-09-20 23:33:29
关注者
0
被浏览
19
5 个回答
-
如果子线程也能访问UI,那么对于多线程应用肯定会造成线程安全问题,子线程A和B同时修改了同一UI,难道不会模糊不清吗?所以UI访问就要保证线程安全,但是保证线程安全肯定会影响效率,UI非常重体验的,不能处于低效率工作,难道每换一次UI我都通过加锁或者另外的方式吗?所以就只能主线程访问UI
-
子线程可以在ViewRootImpl还没有被创建之前更新UI; 访问UI是没有加对象锁的,在子线程环境下更新UI,会造成不可预期的风险; 开发者更新UI一定要在主线程进行操作;
-
与问题无关,其实子线程是可以访问ui的,view只是限制了单线程访问而已,也就是在哪个线程创建的就要在哪个线程访问
-
刷新UI本身是一种瞬时态。如果采用多线程刷新UI会使UI的呈现处于不可预期的状态
-
主要是为了保证页面的正确性