解決安卓UI重新整理卡屏,只顯示最後一處重新整理的問題

2022-08-23 14:39:08 字數 963 閱讀 5335

---恢復內容開始---

錯誤1

安卓的機制決定了只有ui執行緒(也就是主線程)才能更新ui介面

否則會導致ui介面混亂的問題

這就說明了在new thread中直接showimage是會報「出現非主線程更新介面」的錯誤

錯誤2

嘗試在一次點選事件中多次更新ui介面    或者   妄想在死迴圈中一直更新ui介面,會導致ui堵塞,如下圖所示

錯誤3

這裡正解是通過android的handler機制,在runnable 中持續跟新ui,但是想用死迴圈在runnable中的run 方法裡持續顯示,會出現錯誤2的問題

正解1.建立全域性變數 public handler

handler =  new handler();

2.在需要更新ui 介面的地方建立乙個執行緒 

new thread() }

3.在run地方用handler的post方法,注意post()裡應該傳入乙個runnable物件,我們在建立時可以重新建立

5.如果想持續更新ui執行緒,在showimage()後面新增  handler.postdelayed()方法,  方法中第乙個引數傳入的是runnable物件,第二個為延時時長

這裡我的runnable物件傳入的this,就完成了持續更新介面的操作

具體**如下

button_start.setonclicklistener(new onclicklistener() {

@override

public void onclick(view view) {

isrunning = true;

---恢復內容結束---

安卓更新UI方法

更新ui的方法有很多 1.通過靜態方法更新 只對資料有更新的情況下可以使用這種方式,通過外部呼叫靜態方法更新ui內容 2.通過廣播更新 在更新的地方傳送廣播,intent intent new intent intent.setaction updateui activity.sendbroadca...

安卓 UI系列之ProgressBar

系統預設樣式進度條 android 七種進度條的樣式 七種樣式 屬性詳解 基於系統進度條自定義樣式 基於系統自定義樣式的進度條 百分比樣式 載入樣式 android id id pb progressbar style style styleprogressbarmini android layou...

關於安卓介面重新整理問題

今天在做畢業設計的時候遇到安卓介面重新整理的問題,我本來想在結束修改資訊介面的時候,讓個人資訊介面完成更新。可是當我直接finsh 的時候出現個人資訊介面的沒有重新整理,要重新進入介面才會重新整理。1 顯示資訊的介面 2 修改資訊的介面 經過查詢資料發現 有兩種方法可以實現介面的重新整理 我選的第二...