安卓中的AsyncTask 非同步任務 上

2021-07-24 22:51:16 字數 1072 閱讀 8965

class myasynctask extends asynctask

由於asynctask是乙個抽象類,要使用它,我們需要寫乙個類來繼承它,繼承它需要指定它的三個泛型引數:

1) params: 啟動asynctask時要傳入的引數,在後台任務中使用,比如http請求的url,一般為string型別

2) progress: 後台任務執行的進度,如果要在介面上顯示當前的進度,引數型別一般為integer

3) result: 後台任務執行完成後返回的結果,該引數為返回結果的型別,比如返回一張,引數型別為bitmap

class myasynctask extends asynctask
上面就是乙個簡單的asynctask例項,由於我們不需要傳入引數,第乙個引數為void;我們要在介面上顯示進度條的進度資訊,第二個引數為integer;由於要把結果返回給使用者,使用boolean,true代表完成,false是未完成。

如果要使用asynctask去完成相關任務,需要去重寫下面這幾個方法,這些方法可以根據需要來重寫

1) onpreexecute(): 這個方法用於在後台任務執行之前被呼叫,通常用於做介面的初始化操作,比如顯示乙個進度條等

2) doinbackground(params...): 這個方法是在onpreexecute()執行完之後立即執行,這裡面做的是所有的耗時任務,任務完成後,通過return語句將結果返回出去,不需要返回結果,第三個引數指定為void。這個方法是繼承asynctask必須要重寫的方法,注意這是子執行緒,裡面不能進行ui操作,如果要想顯示當前的進度情況,可以呼叫publishprogress()這個方法將結果返回給之後的方法

3) onprogressupdate(progress...): 當在後台呼叫了publishprogress()方法,該方法就會被執行可以利用引數(後台任務傳過來的)中的數值來進行ui的更新

4) onpostexecute(result): 當後台任務完成後該方法會被執行,return的數值會被當作引數傳到方法中,我們可以利用它來做ui操作,比如用吐司來提示使用者任務已完成,或者關閉進度條等。

安卓使用非同步Asynctask連線網路

一 解決新執行緒無法更新ui組建問題的方案 為了解決新執行緒不能更新ui組建的問題,andorid提供了如下幾種解決方案 三 asynctask抽象類 asynctask是乙個抽象類,通常用於被繼承,繼承asynctask需要指定如下三個泛型引數 四 asynctask的特點 五 使用asyncta...

簡單的非同步處理AsyncTask

1.首先建立 asynctask 然後 execute params.params 執行開啟乙個非同步任務 重寫其中的方法 2.onpreexecute 在execute params.params 被呼叫後立即執行 準備過程 在執行後台任務前做一些ui操作 3.doinbackground par...

安卓中sharedperference的用法

引數 sharedperference 使用步驟 1.獲取到 sp this.getsharedpreferences config 0 2.獲取編輯器 editor editor sp.edit 3.editor.putstring key,value putint putdouble 4.edi...