在講解更新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中進行設定,修改配置如下 然後勾選強制...