-
沒問題:
Handler 主要接受子執行緒傳送的資料,並使用這些資料通過主線程更新 UI。
說明:當應用啟動時,Android 會先開啟乙個主線程(即 UI 執行緒),即管理介面中的 UI 控制項,並分發事件,例如,如果你點選乙個按鈕,Android 會將事件分發到該按鈕以響應該操作。
如果此時需要耗時的操作,例如:通過Internet讀取資料,或者讀取本地大檔案,則不能將這些操作放在主線程中,如果將它們放在主線程中,介面會凍結,如果5秒內沒有完成,則會收到來自Android系統的錯誤訊息"強制關機"。這時候就需要把這些耗時的操作放在乙個子執行緒裡,因為子執行緒涉及UI更新,而Android主線程是執行緒不安全的,也就是說更新UI只能在主線程中更新,子執行緒中的操作很危險。
這就是處理程式的用武之地。為了解決這個複雜的問題,由於處理程式執行在主線程(UI執行緒)中,它和子執行緒可以通過訊息物件傳遞資料,這時處理程式負責接受來自子執行緒的訊息物件(子執行緒使用sedmessage()方法傳遞弟弟),(其中包含資料), 將這些訊息放入主線程佇列中,配合主線程更新UI。
-
這取決於您擁有多少資料。 只是如果型別很多,就把要傳輸的資料封裝成乙個類,新增到訊息的obj中; 如果資料量占用大量空間,直接傳輸可能會影響處理速度,因此可以考慮傳輸檔案。
-
是的,將資料封裝到乙個類中,並將整個類傳遞給過去。
-
首先,處理程式建立物件後,可以在程序中傳遞,也可以進行大量的傳遞,但是我們不需要占用這樣的執行緒; 建議您使用 intent 直接傳遞陣列物件字串,然後獲取要使用的內容。
-
是的,因為訊息類是乙個物件型別,所以您可以建立乙個傳輸資料的類,將資料儲存在物件中,然後將值分配給訊息類例項的 obj 成員變數,僅此而已。
-
進行狀態切換。
當資料不變時,它不會傳遞。
當資料發生變化時,狀態開關將被更改並傳遞。
-
請問,正在傳輸什麼型別的資料?
-
一般情況下不會這樣用,但是如果房東真的需要的話,也可以自己寫乙個應用,在裡面定義handler變數並實現get和set方法,然後把你的handler存放在應用中,需要的時候呼叫它!
還可以將處理程式定義為靜態變數,以便可以在其他活動中呼叫它。
一般來說,這兩種方法用得不多,房東可以告訴你的情況**,也許有更好的解決辦法吧!
如果涉及多個呼叫,並且是自發呼叫,請使用更多**!
-
例項化處理程式,然後重寫 HandleMessage(Message MSG) 方法以獲取執行緒執行緒傳送的資料。
-
若要使活動接收訊息,它需要使用自己的處理程式。
您可以在活動中宣告乙個靜態處理程式,並在 oncreat 方法中初始化。
然後由其他執行緒直接呼叫它。
此外,還應將活動的處理程式分配給執行緒。
不知道為什麼抽了,沒辦法問,關於你的程式,我會盡量調一下,訊息沒有問題,上乙個網頁訪問評論直接給活動發訊息,已經收到了,請檢查你的**的其他部分。
男人的樂觀態度會讓你在精神上永遠年輕。 當你朝著你所追求的目標前進時,它會增加你的快樂和自信。 你會自然而然地形成樂觀的心態,幸福永遠與你同在! >>>More
喝白開水是滅火的最好方法。
從營養的角度來看,純淨的白開水對健康最有益。 白開水是解渴的最佳方式,進入人體後可立即代謝,具有調節體溫、輸送營養物質、清除體內毒素的作用。 科學家還發現,煮沸後自然冷卻的涼開水最容易穿透細胞膜,促進新陳代謝,增強人體免疫功能。 >>>More