[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了。
水文以记之,一条代码搞三天呀,急需补充基础知识。
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵 称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。