android handler 主线程吗,[android开发]非主线程进行handler操作
[android開(kāi)發(fā)]非主線程進(jìn)行handler操作
(2012-10-30 16:26:01)
標(biāo)簽:
雜談
android默認(rèn)對(duì)主線程創(chuàng)建有消息隊(duì)列及l(fā)ooper(looper是對(duì)消息隊(duì)列的操作類),但是如果對(duì)于非主線程則無(wú)法創(chuàng)建handler來(lái)操作。android會(huì)報(bào)錯(cuò)不能在非主線程創(chuàng)建handler。但是某些情況下又非要如此不可,該怎么操作呢?
最近做unity工程,給unity添加android支付插件,里面有用到handler導(dǎo)致程序一直無(wú)法正常運(yùn)行,總是報(bào)類創(chuàng)建失敗,同時(shí)unity工程非常大,build一次需要半小時(shí)左右,調(diào)試運(yùn)行代價(jià)之高無(wú)法想象。還是想象下吧:打一條log花去20s,然后build半個(gè)小時(shí),安裝運(yùn)行10分鐘,一個(gè)小時(shí)輕易去了,只是打了條log看下而已。我暈。還是把消耗時(shí)間的資源都去了再調(diào)試吧。
逐條排查后終于找到是new
handler()出錯(cuò)了,百思不得其解。終于在論壇里看到了第一段中的結(jié)論。可是網(wǎng)上沒(méi)有給完整的解決方法,只是說(shuō)在new
handler()前要加Looper.prepare(),之后加Looper.loop();再就是大堆理論。能力不足,只好嘗試,但是一加代碼卡住了,因?yàn)樵创a中Looper.loop()就是一個(gè)死循環(huán)。最后只需要在Looper.loop()后添加looper.quit()就ok了。
水文以記之,一條代碼搞三天呀,急需補(bǔ)充基礎(chǔ)知識(shí)。
分享:
喜歡
0
贈(zèng)金筆
加載中,請(qǐng)稍候......
評(píng)論加載中,請(qǐng)稍候...
發(fā)評(píng)論
登錄名: 密碼: 找回密碼 注冊(cè)記住登錄狀態(tài)
昵???稱:
評(píng)論并轉(zhuǎn)載此博文
發(fā)評(píng)論
以上網(wǎng)友發(fā)言只代表其個(gè)人觀點(diǎn),不代表新浪網(wǎng)的觀點(diǎn)或立場(chǎng)。
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的android handler 主线程吗,[android开发]非主线程进行handler操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: tab s6 linux on dex,
- 下一篇: android 通知显示时间,andro