本講內(nèi)容:Handler使用入門
當(dāng)用戶點(diǎn)擊一個(gè)按鈕時(shí)如果執(zhí)行的是一個(gè)常耗時(shí)操作的話,處理不好會(huì)導(dǎo)致系統(tǒng)假死,用戶體驗(yàn)很差,而Android則更進(jìn)一步,如果任意一個(gè)Acitivity沒有響應(yīng)5秒鐘以上就會(huì)被強(qiáng)制關(guān)閉,因此我們需要另外起動(dòng)一個(gè)線程來處理長耗時(shí)操作,而主線程則不受其影響,在耗時(shí)操作完結(jié)發(fā)送消息給主線程,主線程再做相應(yīng)處理。那么線程之間的消息傳遞和異步處理用的就是Handler。
下面我們通過一個(gè)模擬文件下載的這個(gè)長耗時(shí)操作來做個(gè)說明:
1、新建一個(gè)項(xiàng)目 Lesson27_Handler
2、在MainHandler.java中寫如下面內(nèi)容:
3、res/layout/main.xml的內(nèi)容就省略了,你們可以根據(jù)程序運(yùn)行截圖和程序代碼反推出來布局組件。
4、運(yùn)行程序查看結(jié)果:
這個(gè)例子里,在輔助線程的run方法中執(zhí)行長耗時(shí)操作,操作完畢后調(diào)用handler.sendEmptyMessage()方法,主線程中的Handler的 handleMessage()方法接受到這一消息,并做了就是關(guān)閉對(duì)話框的處理。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
