说好的不能在非UI线程里更新UI组件呢?其实非UI线程是可以刷新UI的,前提是它要拥有自己的ViewRoot,ViewRoot是在onResume()里addview()创建的,所以是在 onResume()检查是否为UI线程,一般在onCreate()中通过子线程可以更新UI,但是要保证更新ui的时间很短,因为activity的生命周期函数为onCreate()->onStart()->onResume(),所以在onResume中检查是否为ui线程时,更新ui的操作已经在onCreate中进行了,但是若更新UI的过程时间太长的话,就会马上被onResume检查到,从而报错。毕竟从onCreate到onResume的时间很短。但官方不建议这样做,因为 Android UI操作并不是线程安全的。
Android中为什么可以在非UI线程里更新UI组件?
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- Android有条铁则:子线程不能修改UI 至于为什么 ,就是修改了会报错呗 具体错误如下 但是令人称奇的是:如果...
- 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-androi...
- 转自Android四大基本组件介绍与生命周期Android四大基本组件分别是Activity,Service服务,...
- Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...