深入研究AsyncTask

2021-06-16 15:19:46 字數 934 閱讀 7296

asynctask提供了一種在後台執行操作而在ui執行緒顯示結果的方式,而且開發者不必操作執行緒或者handler.

乙個asynctask定義了三種泛型分別是params,progress,result,還有四個函式分別是onpreexecute ,doinbackground onprogressupdate,onpostexecute.

asynctask必須寫子類繼承來使用.例如

private class downloadfilestask extends asynctask

return totalsize;

}protected void onprogressupdate(integer... progress)

protected void onpostexecute(long result)

}

asynctask一定要在ui執行緒中例項化,呼叫execute一定要在ui執行緒,否則會報錯.

handler如何與當前執行緒的looper產生聯絡.

handler在構造的時候,可以通過looper.getlooper()獲取當前執行緒的looper物件.

而在asynctask 中有乙個靜態的handler物件,是用來後台執行緒和ui執行緒互動的,所以這個asynctask必須在ui 執行緒例項化.否則會報錯......

能否在其他執行緒中宣告handler,並和主線程通訊looper.getmainlooper(),測試一下.

asynctask使用了執行緒池技術。設定的一些變數,最小的執行緒數是5個,最大的執行緒數是128個,而工作佇列的規模是10個。對於移動裝置上來說,目前大部分裝置都是基於4核,最小執行緒數是5個,我認為還是比較合理的,但是最大執行緒數,設定是否過大,如果,任務太多,導致工作佇列滿時,不斷增加執行緒數,勢必會導致手機卡死!在使用asynctask的時候,要切記,不能提交過多的耗時任務!

flex Bindable深入研究

bindable 元資料標籤,它在 中的作用就是向編譯器提供如何編譯程式的資訊。它的最大作用是使程式元件間的資料同步變得容易。在開發中通常用上bindable作用在檢視控制項上,如給它繫結乙個物件,則以後只需要在邏輯層更改這個物件的值,則檢視層的控制項資料會自動更新 同步 而不再需要手動去更新檢視。...

URLRequest深入研究

urlrequest 的乙個例項 html view plain copy create the request.所構建的nsurlrequest具有乙個依賴於快取響應的特定策略,cachepolicy取得策略,timeoutinterval取得超時值 nsurlrequest therequest...

陣列深入研究

一 稀疏陣列 稀疏素組就是包含從0個開始的不連續陣列。通常,陣列的length屬性值代表陣列中元素的個數。如果陣列是稀疏,length屬性值大於素數的個數。可以用array 建構函式或簡單地指定陣列的索引值大於當前的陣列長度來建立稀疏陣列。注意 當在陣列直接量中省略值時不會建立稀疏陣列。省略的元素在...