問題:「android只能在ui執行緒更新ui 麼?」
答:「對!......,嗯?不對?」
我腦子裡的的回答是「對」,但是辯證思維又在提醒我可能有陷阱,於是我就說「大部分情況是的」。那麼小部分情況呢?具體說不上來了!於是才發現這個問題一直被忽略了。
於是試驗檢驗真理,擼**驗證了一遍。
new thread()
}.start();
奔潰資訊:
問題出現在viewrootimpl.checkthread()的時候出錯
檢視viewrootimpl的原始碼,導致問題的原因:
public viewrootimpl(context context, display display) {
mcontext = context;
mwindowsession = windowmanagerglobal.getwindowsession();
mdisplay = display;
mbasepackagename = context.getbasepacka
Android 在子執行緒中更新主線程UI
最近發現以前在eclipse中使用的runonuithread在studio中不能使了,所以又找了幾個更新ui的方法 第一種方法 new handler context.getmainlooper post new runnable 第二種方法 如果當前執行緒是ui執行緒,那麼行動是立即執行。如果當...
為什麼 Android 更新 UI 只能在主線程
ui訪問沒有加鎖,在多個執行緒訪問ui是不安全的。所以android中規定只能在ui執行緒中訪問ui。一些朋友說在 oncreate 中 可以 建立子執行緒操作 ui,不會程式崩潰 網上已有很多人分析過 主要是因為 1.錯誤是從 viewrootimpl.requestlayout viewroot...
更新UI放在主線程的原因
1 在子執行緒中是不能進行ui 更新的,而可以立刻更新的原因是 子執行緒 執行完畢了,又自動進入到了主線程,這中間的時間非常的短,讓我們誤以為子執行緒可以更新ui。如果子執行緒一直在執行,則無法更新ui,因為無法進入到主線程。2 程式一開始執行就進入了主線程。3 處理某些資料太過費時,影響使用者互動...