UI更新方法

2021-07-17 03:55:10 字數 1370 閱讀 2445

在講解更新ui方法前,我們先來了解一些概念:

當應用啟動,系統會建立乙個

主線程(main thread)

這個主線程負責向ui元件分發事件(包括繪製事件),

ui的更新也必須在主線程中完成,讓主線程做處理,因此也可以說,

主線程即ui執行緒。主線程主要的職責是:(1)快速處理ui事件,(2)快速處理broadcast訊息。

我們的耗時操作不能阻塞主線程,要保證應用的響應性, 所以當你的操作不是即時的那種(not instantaneous),你應該把他們放進單另的執行緒中(叫做

background

或者叫worker執行緒)。

了解了這些後,我們就知道為什麼需要在另外的執行緒中進行耗時操作,然後再更新ui的時候切換回主線程進行頁面更新,android提供了一下這幾種方法用於ui更新:

一、runonuithread()

1.定義runable要執行的操作:

private activity mactivity= this;

private runnable mrunnable;

mrunnable = new runnable()

};

2.使用的時候:

mactivity.runonuithread(mrunnable);

二、view.post()

1.定義runable要執行的操作:同上

2.使用的時候:

mtextview3.post(mrunnable);

三、handler:略

四、asynctask:摘自

public class mainactivity extends activity 

});}

class asynctaskthread extends asynctask catch (exception e)

publishprogress(100);

return bitmap;

}protected void onprogressupdate(integer... progress)

protected void onpostexecute(bitmap result) else

}protected void onpreexecute()

protected void oncancelled()

}@override

public boolean oncreateoptionsmenu(menu menu)

}

注意:asynctask最多支援127執行緒,超128執行緒就會崩潰。

TinyOS更新方法

介紹兩種方法 在linux或者cygwin環境下更新 設定環境變數 export cvsroot pserver anonymous tinyos.cvs.sourceforge.net cvsroot tinyos 接入命令 cvs d pserver anonymous tinyos.cvs.s...

軟體更新方法

軟體更新方法 摘要 本發明涉及通訊領域,公開了一種軟體更新方法,使得能夠在一次更新過程中,提供軟體新增功能的無縫銜接和新版本軟體的格式更改,同時使得軟體公升級方法對未來的未知需求有最佳的適應能力,並能提高軟體公升級效率。本發明將要公升級的軟體分為三個部分 新版本軟體包頭部 與軟體公升級相關的部分和其...

Android Studio SDK 更新方法

1 sudo vim hosts 輸入密碼後進行編輯,新增如下幾行 1 2 3 4 5 6 7 google主頁 203.208.46.146 www.google.com 這行是為了方便開啟android開發官網 現在好像不翻也可以開啟 在preference中進行設定,修改配置如下 然後勾選強制...