為什麼 Android 更新 UI 只能在主線程

2021-08-22 16:38:28 字數 305 閱讀 2234

ui訪問沒有加鎖,在多個執行緒訪問ui是不安全的。所以android中規定只能在ui執行緒中訪問ui。

一些朋友說在 oncreate 中 可以 建立子執行緒操作 ui,不會程式崩潰

網上已有很多人分析過

主要是因為 

1.錯誤是從 viewrootimpl.requestlayout → viewrootimpl.checkthread 中丟擲

2.oncreate 的時候 viewrootimpl 還未建立

3.如果子執行緒的操作能在 oncreate 和 建立 viewrootimpl 過程中完成,就不會報錯

android 子執行緒更新UI例項

package com.example.test0207 handler import android.os.bundle import android.os.handler import android.os.message import android.view.menu import andr...

子執行緒為什麼可以更新UI操作,那是因為

子執行緒中真的不可以更新ui麼?看乙個熟悉的場景 執行結果可能很多人猜是 viewrootimpl calledfromwrongthreadexception 可惜啊,並沒有任何異常,良好執行。這個不是有悖我們原則麼?你們這麼想就是誤解了這個原則,原話是不推薦在子執行緒中更新ui,因為會造成不必要...

UI控制項為什麼要用weak

首先糾正一下標題,不應該叫ui控制項,而是通過xib直接拖拽的ui控制項 property weak,nonatomic iboutlet uibutton testbtn 對於新學習的同學可能不太容易理解week屬性,誤以為,week是為了解決迴圈引用的而使用的,而事實上,通過xib拖拽的控制項屬...