主要程序代码如上,在这个程序中程序与结果如上图截图所示,在这个程序中并不像官方文档中所示会抛出异常,那么这是什么原因呢?猜想:最大的可能是跟Activity的生命周期有关,当我们创建一个Activity调用onCreate方法时,UI并没有执行onResume,也就是说UI没有真正展示出来之前我们的新建线程中的方法就已经执行,所以就不存在“更新”问题。所以就不会报错,程序是正常执行的。只有在onResume执行之后才存在跟新问题。ui线程与新线程之间执行是异步的。所以有时间差的问题。所以在这时候不用怀疑官方文档是否出错,假设我们在非主线程中更新ui但是耗时比较长就会出现抛出异常问题。佐证:在幕渴网老师在讲解Handler这堂课程中出现抛出异常的问题,那么我们来看看跟我们上面写的究竟有什么区别。直接上图。幕课网老师多加了一条代码,如图所示,在onCreate方法中是得新线程睡眠了1s,别小看这一秒,这一秒足以使得主线程执行完onCreate方法,执行完onResume方法,而在此时线程运行起来是真正意义上的更新UI,所以抛出了异常。我写着个希望跟大家一起探讨这个问题。希望大家能顶起来
目前暂无任何回答
- 0 回答
- 0 关注
- 1441 浏览
添加回答
举报
0/150
提交
取消