android handler 主线程吗,[android开发]非主线程进行handler操作

[android开发]非主线程进行handler操作

(2012-10-30 16:26:01)

标签:

杂谈

android默认对主线程创建有消息队列及looper(looper是对消息队列的操作类),但是如果对于非主线程则无法创建handler来操作。android会报错不能在非主线程创建handler。但是某些情况下又非要如此不可,该怎么操作呢?

最近做unity工程,给unity添加android支付插件,里面有用到handler导致程序一直无法正常运行,总是报类创建失败,同时unity工程非常大,build一次需要半小时左右,调试运行代价之高无法想象。还是想象下吧:打一条log花去20s,然后build半个小时,安装运行10分钟,一个小时轻易去了,只是打了条log看下而已。我晕。还是把消耗时间的资源都去了再调试吧。

逐条排查后终于找到是new

handler()出错了,百思不得其解。终于在论坛里看到了第一段中的结论。可是网上没有给完整的解决方法,只是说在new

handler()前要加Looper.prepare(),之后加Looper.loop();再就是大堆理论。能力不足,只好尝试,但是一加代码卡住了,因为源码中Looper.loop()就是一个死循环。最后只需要在Looper.loop()后添加looper.quit()就ok了。

水文以记之,一条代码搞三天呀,急需补充基础知识。

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值