说好的不能在非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组件?
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Android有条铁则:子线程不能修改UI 至于为什么 ,就是修改了会报错呗 具体错误如下 但是令人称奇的是:如果...
- 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-androi...
- 转自Android四大基本组件介绍与生命周期Android四大基本组件分别是Activity,Service服务,...
- Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...