亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Android面試常客Handler詳解

難度中級
時長 2小時 0分
學習人數
綜合評分9.30
169人評價 查看評價
9.7 內容實用
9.3 簡潔易懂
8.9 邏輯清晰

最贊回答 / 慕粉18419213644
handler.postDelayed只是發送一條延時消息到消息隊列中,而程序的運行要不斷的從消息隊列中去取消息,所以第一條消息必須在主線程(UI線程)中加入,后面的更新消息會在子線程中 ?遞歸延時發送!

最新回答 / gzzing
<...code...>Thread.sleep()方法會拋出異常所以要try/catch

最新回答 / 慕星北
不是,Handler只是攔截消息并處理,一般我們如果要更新UI信息,可以在主線程中直接更新,但是如果想要實現定時更新,就必然要重啟一個線程更新,而在子線程中不能直接對UI進行操作,所以需要通過Message進行消息傳遞,然后通過Handler去攔截處理,所以不論是在主線程和子線程中它都可以使用,它只負責處理.

最贊回答 / someone_ikok
Android系統的消息隊列和消息循環都是針對具體線程的,一個線程可以存在(當然也可以不存在)一個消息隊列 和一個消息循環(Looper),特定線程的消息只能分發給本線程,不能進行跨線程,跨進程通訊。但是創建的工作線程默認是沒有消息循環和消息隊列的,如果想讓該線程具有消息隊列和消息循環,需要在線程中首先調用Looper.prepare()來創建消息隊列,然后調用Looper.loop()進入消息循環。一個Message經由Handler的發送,MessageQueue的入隊,Looper的抽取,又再一次地...

最贊回答 / 柯文
在Android里可以這么理解,因為在android里你可以把UI界面當做主線程,你不能因為下載東西就一直顯示下載,用戶體驗不好,也不被google容許,所以你點擊下載就是開啟子線程去下載了,手機頁面該看什么你就看什么,等下載好子線程就發個message給handler它來更新UI,在你的手機界面顯示或彈出一個下載好了的消息,如果不用handler下載好了你也不知道,還得自己去看。Handler和Thread:子線程是不能更新UI的,所以用Thread開啟子線程后,如果需要更新UI,就通過Handler來...

最新回答 / Jannina
這個跟message有什么關系?looper實例都還沒有,哪里來的Message?? ?@Override? ? public void run() {? ? ? ? mTid = Process.myTid();? ? ? ? Looper.prepare();? ? ? ? synchronized (this) {? ? ? ? ? ? mLooper = Looper.myLooper();? ? ? ? ? ? notifyAll();? ? ? ? }? ? ? ? Process.setTh...

最新回答 / 寒冬里的螢火蟲
是的,你沒有實例化handler,報的空指針異常

最新回答 / lingxi
前提得是你在create里面用findviewbyid找到TextVeiw,你要用變量名調用setText啊 不是用變量類型。即TextView a; a=(TextView)findViewById(...);然后a.setText(...)

最新回答 / wendyyyy
一次是在主線程中,把myRunable添加到主線程消息隊列中,調用以后才能執行myRunable中的代碼;另一次是在myRunable中,用來實現循環添加自身到主線程消息隊列(遞歸),從而實現每隔一秒更新UI。

最贊回答 / 北國VS飄雪
UI中第一次調用后,而后在MyRunnable中handler.postDelayed(MyRunnable,1000),一直循環調用MyRunnable的run方法,遞歸調用
老師告訴你能學到什么?
通過本課程,你將學到: 1、什么是Handler 2、如何使用Handler 3、Handler的原理是什么 4、如何定義一個與線程相關的Handler 5、Android更新UI的幾種方式 6、非UI線程真的不能更新UI嗎 7、Handler使用過程中遇到的問題

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消