android子線程更新UI成功
今天在寫demo的時候,在子線程中更新UI,發現更新成功,記錄一下。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.tvNo);
new Thread(new Runnable() {
@Override
public void run() {
textView.setText("test");
}
}).start();
}
代碼如上,直接執行后成功,沒有任何異常,且textView文字設置成功。通過log顯示,TextView的更新確實是發生在子線程中。網上的說法是設置發生在activity初始化完成之前,所以沒有報出異常,測試后發現子線程操作如果加上休眠3s,或者放在點擊事件處理邏輯中,則會報錯,與網上說法的現象一致。
ps:暫時記錄,后續看源碼驗證后更新。