綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[教程] android開發(6) - 初遇handler

[複製連結] 查看: 1204|回覆: 1|好評: 0
跳轉到指定樓層
樓主
暗桌之光 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2011-7-10 10:53

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
handler是線程通訊工具類。用於傳遞消息。它有兩個隊列:
1.消息隊列
2.線程隊列

消息隊列使用sendMessage和HandleMessage的組合來發送和處理消息。
線程隊列類似一段代碼,或者說一個方法的委託,用戶傳遞方法。使用post,postDelayed 添加委託,使用 removeCallbacks移除委託。

由上面的特性我們可以簡單看出「handler類似一個容器對象,它攜帶了消息的集合和委託的集合」。java裡沒有委託delegate的概念,但是可以通過class來持有一個可執行的方法代理。

handler更像是一個傳遞者,在另外的線程裡和主線程之間傳遞消息和可執行的代碼。它不僅僅攜帶了數據,而且封裝了一些操作行為,比如說在適當的時機(...)來執行線程隊列裡的「委託」的代碼。

handler可能是和消息隊列交互的,我們在new Handler實例化對像時,這個對象應該就和主線程的消息隊列建立了關係。當我們使用handler.Post(runnabler1),發送一個委託的方法runnabler1代理給handler時,主消息隊列會在適當的時候執行這個runnabler1里的委託方法,即執行了runnabler.run方法。

我們先看個例子:

「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)

HandlerDemo.rar

41.69 KB, 下載次數: 9, 下載積分: 碎鑽 -1 個

評分

參與人數 2碎鑽 +1 幫助 +2 收起 理由
tt60815 + 1 + 1 很給力!
idvtw + 1

查看全部評分

收藏收藏3 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
沙發
pluto1027 | 收聽TA | 只看該作者
發表於 2012-3-7 14:38
thanks a lot!!
thread 我看好久
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則