java.lang.RuntimeException: Can't create handler inside thread that has not call

本文介绍了在非主线程中使用Looper的相关问题及解决方案。主要针对java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 的异常处理,通过在非UI线程中初始化Looper并正确使用Looper.loop()来避免该问题。

java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

这时今天遇到的第二个错误。

原因是非主线程中没有创建Looper对象,需要先调用Looper.prepare()启用Looper。

解决办法是在线程的开始跟结束间调用Looper.prepare(); 跟Looper.loop();

如:

                ExecutorService cachedThreadPool = Executors.newCachedThreadPool();

cachedThreadPool.execute(new Runnable() {

@Override

public void run() {

Looper.prepare(); 

***********

Looper.loop();

}

});

注意:一个线程只能有一个Looper

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值