欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

主线程与子线程

程序员文章站 2022-03-28 19:07:42
主线程和子线程相关①java.lang.RuntimeException: Can’t create handler inside thread that has not called Looper.prepare()今天遇到这个问题:刚开始在主线程时调用了classA中的方法a(a内无任何操作),然后往下执行,在子线程中调用了classA中的方法b,方法b中new了一个handler,这个时候运行是正常的。再往后,把前面调用方法a的地方去掉了,再运行,就出现了这个异常。方法a和方法b是没有联系的。但是...

主线程和子线程相关
学习心得,做个小结,供自己复习
①java.lang.RuntimeException: Can’t create handler inside thread that has not called Looper.prepare()
今天遇到这个问题:刚开始在主线程时调用了classA中的方法a(a内无任何操作),然后往下执行,在子线程中调用了classA中的方法b,方法b中new了一个handler,这个时候运行是正常的。再往后,把前面调用方法a的地方去掉了,再运行,就出现了这个异常。方法a和方法b是没有联系的。但是为什么会出现这个异常,还是在老师父的解释和看了网上的一些文章后,才对主线程和子线程有了一些理解。
出现这个问题后,我最先想到的是子线程不能更新UI,但是这里只是发了一个消息呀,而且为什么调用了空的方法a之后就没有异常了?原来问题的原因是,刚开始主线程调用了方法a,所以classA在主线程中初始化了,那么消息队列Looper也就在主线程中初始化了;而没有调用方法a的话,这个Looper就初始化在了子线程,就出现了如上①的错误。

本文地址:https://blog.csdn.net/weixin_42142032/article/details/106916531