-
這個問題剛剛遇到,按照Android的原始碼,大致分析一下。
Android為了限制子執行緒的更新UI,設定了乙個執行緒檢查機制,比如從子執行緒對中可以看出,通過錯誤日誌可以看到異常的位置,從字面上看,這個方法就是用來檢查修改檢視的執行緒是否是主線程。
此檢查方法在檢視的 requestLayout() 中呼叫,但在某些情況下不會呼叫 requestLayout()
if(mparent != null){
if (!唯一的解釋是上面的 2 個 ifs 中有乙個不匹配,導致後續的 checkthread() 沒有被呼叫,子執行緒成功修改了 UI。
這可能是在活動建立的早期階段,布局或其他動作初始化尚未完成,導致執行緒檢查沒有發生,具體問題需要研究才能知道。
你可以嘗試一下,你的第一種情況,在新執行緒更改文字檢視之前讓執行緒休眠 2 秒鐘,然後更改 UI 並丟擲異常。
-
這並不是說子執行緒不能是更精細的 UI,也不是說 ui 執行緒中的子執行緒不能直接更新 UI,而是您在 OnCreate 中建立的是附加到主線程的子執行緒。 在按鈕中建立的是附加到 UI 執行緒的子執行緒
-
對於情況 b,您嘗試在類中建立乙個新執行緒,然後在 button 的 setonclicklistener 中呼叫它,應該沒有問題。 如果它位於按鈕的 setonclicklistener 中,則應將其視為內部類。
-
有兩種方法可以做到這一點:
通過繼承執行緒類並重寫 run 方法,通過繼承可執行介面來實現多執行緒處理。
它主要接受子執行緒傳送的資料,並使用這些資料與主線程一起更新 UI
處理程式的主要功能主要用於非同步訊息的處理
當子執行緒發出訊息時,它首先進入訊息佇列(主線程),傳送訊息的函式立即返回,主線程中的處理程式將訊息佇列中的訊息一一取出,然後對訊息進行處理。 這將啟用跨執行緒 UI 更新(實際上是在主線程中完成的)。
這種機制通常用於處理相對耗時的操作,例如訪問網路、讀取大檔案等耗時的操作,以及耗時的操作。
用白話來說,稍微介紹一下它的操作:
Android 會在應用啟動時啟動乙個主線程。
即 UI 執行緒),如果此時需要耗時的操作,例如:
在通過網路讀取資料,或者讀取大型本地檔案時,不能把這些操作放在主線程中,如果放在主線程中,介面會凍結(這也是為什麼在主線程中直接訪問網路時會提示你,正如我們在上一篇文章中提到的Android主線程無法訪問網路異常解決方法)。
-
Android 中的非 UI 執行緒無法在 UI 上操作,您可以在單獨的執行緒上執行耗時的操作,然後通過處理程式更新 UI。 或者,您可以使用 asynctask。
-
看看這個部落格上的一些內容,我想你會很清楚的!
-
當 Android 程式開始執行時,會啟動乙個單獨的程序。 預設情況下,此程式中的所有活動或服務(除了內容提供商和廣播接收器之外,服務和活動只是 Android 提供的兩個元件)都將在此過程中執行。
預設情況下,Android 程式也只有乙個程序,但乙個程序下可以有多個執行緒。 在這些執行緒中,有乙個執行緒,我們稱之為UI執行緒,它是在Android程式執行時建立的,是程序中的主線程,主要負責控制UI介面的顯示、更新和控制互動。 在建立 Android 程式之初,乙個程序呈現了乙個單執行緒模型,所有任務都在單個執行緒中執行。
因此,我們認為 UI Thread 執行的每個函式都應該花費盡可能少的時間。 其他耗時的任務(訪問網路、資料、查詢資料庫等)應由子執行緒執行,以避免阻塞主線程。
那麼,UI Thread 如何與其他執行緒協同工作呢? 常用的方法有:
生成乙個主線程的 handler 物件,並充當監聽器,讓子執行緒將訊息推送到主線程的訊息 quene,從而觸發主線程的 handlermessage() 函式,讓主線程知道子執行緒的狀態,更新主線程上的 UI。
癲癇發作時該怎麼辦。
一般來說,癲癇患者在癲癇發作前也會有一些前兆症狀,如感覺異常、胸悶、上腹不適、恐懼、流涎、聽不見聲音、視力模糊等。 因此,患者應在收到癲癇發作警報之前盡快離開危險情況,例如在路上、池塘邊或火堆前,並及時找到安全的地方坐下或躺下。 北京航空總醫院癲癇中心表示,當患者家屬應及時發現患者癲癇發作情況,以便盡快採取預防措施,防止其他意外傷害的發生。 >>>More
根據法律規定,除非是授權律師,否則在案件結案前,包括嫌疑人的配偶、父母和子女在內的任何家庭成員都不能見到嫌疑人。 基於目前的混亂狀態,任何猜測都是多餘的。 建議委託律師直接與犯罪嫌疑人溝通,專業指導後續步驟,從保護犯罪嫌疑人權益的角度出發,依法辯護,理性論證,使犯罪嫌疑人依法避免不必要的牢獄之災。
我覺得你應該和你現在的男朋友分手,因為就算乙個男人沒有能力,賺不到錢也不是什麼大問題,但是如果他對女朋友不好,動不動就發脾氣,那麼這樣的男人一定不要,即使你還愛他, 但我勸你不要和你男朋友的朋友在一起,你可以先單身一段時間,或者先看看別人,因為如果你現在和那個男人在一起,對你和他都沒有好處!希望我的話對你有所幫助! 祝你有快樂的一天。
在現實生活中,學習機主要是閱讀朗和西洋雙陸棋這兩個品牌,壟斷了學習機市場,其他行業很難進入,購買的時候主要是給孩子學習的,需要問人家對此的記憶有多少,一定是小學時的書, **記憶體比較小,等你長大了,記憶試卷**就多了,記憶是第一點還是第二點就要問了,有些地方是你自己操作的,你去找吧,有沒有地方玩遊戲?有的孩子會學著背回去,家長不注意就把它當成遊戲機,注意這一點,最重要的一點就是看這個牌子是對還是錯,有的牌子你掃瞄人家的程式碼,出來,有的**,萬一有人有盜版,那就不好了, 買了就退不回來了,大概就是這樣了,你買的時候,你主要看的是價格,就是看自己的窮,你窮了買價效比,佛上買一些比較有用就行了。
溫嬌咬掉唐僧的腳趾後,你就去找那個腳趾頭,如果腳趾被溫嬌吞下,趁著不消化的事實,趕緊把溫嬌一起吃掉,吃了唐僧的肉可以長生不老,修煉成正果,可能是天界或者佛界故意放出來的傳聞, 回去看看這個謠言是什麼時候第一次出現。畢竟,溫嬌和沙和尚這兩個可能吃過唐僧肉的人,並沒有因為唐僧肉而取得積極的結果。