安卓handler機制原理 android handler能不能傳遞較多數據?
android handler能不能傳遞較多數據?這沒有問題:處理程序主要接受子線程發(fā)送的數據,并使用這些數據用主線程更新UI。說明:當應用程序啟動時,Android將首先打開一個主線程(即UI線程)
android handler能不能傳遞較多數據?
這沒有問題:處理程序主要接受子線程發(fā)送的數據,并使用這些數據用主線程更新UI。說明:當應用程序啟動時,Android將首先打開一個主線程(即UI線程)。主線程是管理界面中用于分發(fā)事件的UI控件。例如,如果您單擊一個按鈕,Android將向該按鈕分發(fā)事件以響應該操作。如果此時需要一個耗時的操作,例如在Internet上讀取數據或讀取一個大的本地文件,那么這些操作不能放在主線程中。如果將它們放在主線程中,接口將假裝死亡。如果沒有在5秒內完成,Android系統(tǒng)將收到錯誤提示“強制關機”。此時,我們需要將這些耗時的操作放在一個子線程中,因為子線程涉及UI更新,而Android主線程是不安全的,也就是說,UI更新只能在主線程中進行,子線程中的操作是危險的。此時,處理程序出現。為了解決這個復雜的問題,由于處理程序在主線程(UI線程)中運行,它和子線程可以通過消息對象傳遞數據。此時,處理程序負責接受子線程傳遞的消息對象(包含數據)(子線程通過sedmessage()方法傳遞消息對象),將這些消息放入主線程隊列,并與主線程協(xié)作更新UI。
android handler的機制和原理?
處理程序主要用于異步消息處理:消息發(fā)送時,首先進入消息隊列,發(fā)送消息的函數立即返回,另一部分在消息隊列中逐個取出消息,然后對消息進行處理,即,發(fā)送和接收消息不同步。這種機制通常用于處理相對耗時的操作。