異步操作

當一個線程執行的時候,可能會產生一些阻礙,這時用戶就不能再執行當前線程的其他操作,可能需要等待其響應。於是,解決的辦法就是把可能產生阻礙的步驟放在另一個線程上執行,這樣當前線程的操作就可以不受影響。

例子:在某個軟件中,點擊某個按鈕會向服務器發送請求,這時在網絡傳輸中可能產生很多事件阻礙,所以就要把該操作放在另一個線程中,即異步操作。

代碼:需要寫一個類繼承AsyncTask<Void,Void,Void>,再覆寫Void doInBackground方法,在該函數中寫要執行的可能產生阻礙的操作。執行該線程在主線程中使用該類的一個對象的excute方法。

onPreExecute  該方法運行在UI線程中,可以對一些UI控件進行操作

doInBackground  該方法並不運行在UI線程中,所以不能對UI控件進行修改

在該方法內可以調用publishProgress(i)發佈一些更新到UI線程。

onProgressUpdate (i)該方法在UI線程中,可實現更新(如修改進度條),publishProgress的參數就是傳到這裏。

onPostExecute  該方法在doInBackground  運行之後運行

AsyncTask<A,B,C>

C  doInBackground (A...Param)   A是參數類型,...的意思是可以傳入多個A類型的數,Param是一個數組,保存參數。C是返回值類型

onProgressUpdate(B)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章