AsyncTask和Handler非同步實現比較

2021-06-06 11:56:58 字數 478 閱讀 5642

一、asynctask

asynctask是android提供的輕量級的非同步類,可以直接繼承asynctask,在類中實現非同步操作,並提供介面反饋當前非同步執行的程度(可以通過介面實現ui進度更新),最後反饋執行的結果給ui主線程。

優點:簡單、快捷;過程可控。

缺點:在使用多個非同步操作和並需要進行ui變更時,就變得複雜起來。

二、handler

在handler非同步實現時,涉及到 handler、looper、message和thread四個物件,實現非同步的流程是主線程啟動thread(子執行緒),子執行緒執行並生成message,looper獲取message並傳遞給handler,handler獲取looper中的message,並進行ui變更。

優點:結構清晰,功能定義明確;對於多個後台任務時,簡單、清晰。

缺點:在單個後台非同步處理時,**相對過多,結果相對複雜。

Android中的Timer和Handler的使用

timer timer主要用於執行一次性任務或者按照某個時間間隔迴圈執行某個任務,但對於迴圈執行來說,又分為兩種情況。第一種是fixed period execution,呼叫schedule timertask,delay,period 方法即可,這種迴圈執行任務的特點是,下一次執行的開始時間是從...

怎樣停止AsyncTask和Thread

從外部呼叫asynctask的cancel方法並不能停止乙個已經啟動的asynctask。這個cancel方法的作用與執行緒的interrupt方法相似,呼叫了乙個執行緒的interrupt方法之後執行緒仍然執行,但是如果該執行緒的run方法裡面呼叫過sleep的或者wait方法後,處於sleep或...

Handler訊息機制完全解析Handler解析

handler handler總是依附於建立時所在的執行緒,比如我們的handler是在主線程中建立的,而在子執行緒中又無法直接對ui進行操作,於是我們就通過一系列的傳送訊息 入隊 出隊等環節,最後呼叫到了handler的handlemessage 方法中,這時的handlemessage 方法已經...