android 为什么不允许在子线程中访问UI
(摘自《Android开发艺术探索》) 这是因为Android的UI控件不是线程安全的,如果在多线程中并发访问可能会导致UI控件处于不可预期的状态,那么为什么系统不对UI控件的访问加上锁机制呢?
缺点有两个:
①首先加上锁机制会让UI访问的逻辑变得复杂
②锁机制会降低UI访问的效率,因为锁机制会阻塞某些线程的执行。 所以最简单且高效的方法就是采用单线程模型来处理UI操作。
子线程有哪些更新UI的方法
1>主线程中定义Handler
,子线程通过mHandler
发送消息,主线程Handler的handleMessage
更新UI。
2>用Activity对象的runOnUiThread
方法。
3>创建Handler,传入getMainLooper
。
4>View.post(Runnabler)
。
5> AsyncTask实现
作者:初一十五a
链接:https://juejin.cn/post/6844904111234613261
版权声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。
评论