bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Android中Handler有什么作用

這篇文章主要講解了“Android中Handler有什么作用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Android中Handler有什么作用”吧!

城陽ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為成都創新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

在性能優化方面考慮,Android的UI操作其實并不是線程安全的,這意味著如果有多個線程并發操作UI組件,就會導致線程安全的問題,為了這個問題,Android提供了解決方法:指定了一條簡單的規則,只允許UI線程修改Activity里的組件

當第一個程序第一次啟動時,Android會同時啟動一條Main Thread(主線程),負責處理和UI相關的時間,比如按鍵時間,接觸屏幕以及屏幕繪制事件,并把相關的時間分發到對應的組件進行處理。因此,主線程又被稱為UI線程

Android的消息傳遞機制是里外一種形式的“事件處理”,這是為了解決Android應用的多線程問題:只允許UI線程修改Activity里的U組件,這樣會導致新啟動的線程無法動態改變界面組件的屬性值。但是在實際的開發中,尤其是涉及動畫的游戲開發中,需要讓新啟動的線程周期性的改變界面組件的屬性,這就需要Handler的消息傳遞機制來實現

  • Handler的底層實現原理

要理解handler的實現原理,其實最重要的是Looper的實現原理,Looper才是實現handler機制的核心。

任何一個handler在使用sendMessage或者post時候,都是先構造一個Message,并把自己放到Message中,然后把Message放到對應的Looper的MessageQueue,Looper通過控制MessageQueue來獲取message執行其中的handler或者runnable。

要在當前線程中執行handler指定操作,必須要先看當前線程中有沒有looper,如果有looper,handler就會通過sendMessage,或者post先構造一個message,然后把message放到當前線程的looper中,looper會在當前線程中循環取出message執行,如果沒有looper,就要通過looper.prepare()方法在當前線程中構建一個looper,然后主動執行looper.loop()來實現循環。

  • Handler類的兩個作用:在新啟動的線程中發送信息和在主線程中獲取、處理信息

  • Message:Handler處理和接收的消息對象

  • Looper:每個線程擁有一個Looper,它的loop負責讀取MessageQueue中的消息,讀到消息之后,就把消息交給該消息的Handler處理

  • MessageQueue:消息隊列,采用先進先出的方式來管理Message。程序創建Loop時就會在它的構造器中創建MessageQueue對象

  • 在主UI線程中,系統已經初始化; 一個Loop對象,因此可以直接創建Handler

  • 在自己啟動的子線程中,必須自己創建一個Looper對象,啟動它,創建對象并調用它的prepare方法

感謝各位的閱讀,以上就是“Android中Handler有什么作用”的內容了,經過本文的學習后,相信大家對Android中Handler有什么作用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯,小編將為大家推送更多相關知識點的文章,歡迎關注!

新聞標題:Android中Handler有什么作用
本文路徑:http://vcdvsql.cn/article36/gjegpg.html

成都網站建設公司_創新互聯,為您提供企業建站搜索引擎優化定制網站外貿網站建設自適應網站虛擬主機

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

微信小程序開發