面試:子執行緒一定不能更新ui?這種說法顯然是不嚴謹的。
在主線程更新ui的方法:
1.使用activity的runonuithread方法更新ui,無論當前執行緒是否是主線程,都將在主線程執行
runonuithread(new runnable()
});
2.使用handler直接post到主線程(handler需要在主線程建立)
應用場景:延時啟動,廣告展示後,做頁面跳轉。//延遲3秒執行runnable
mhandler.postdelayed(new runnable()
}, 1000*3);
子執行緒更新UI
一般在winform c s程式中經常會在子執行緒中更新控制項的情況,桌面程式ui執行緒是主線程,當試圖從子執行緒直接修改控制項屬性時會出現 從不是建立控制項的執行緒訪問它 的異常提示。跨執行緒更新ui控制項的常用方法有兩種 1.使用控制項自身的invoke begininvoke方法 2.使用sy...
Android之在子執行緒更新UI 一
方法一 用handler 1 主線程中定義handler handler mhandler new handler 2 子執行緒發訊息,通知handler完成ui更新 private void updateweather start 方法一的handler物件必須定義在主線程中,如果是多個類直接互相...
Qt子執行緒如何更新UI?
和其他語言類似,不能直接在子執行緒更新ui,可以通過signal slot機制在ui執行緒進行更新。signal slot機制可以在不同物件,不同執行緒之間進行通訊。例子 include mainwindow.h include include class mythread public qthre...