AsyncTask是官方提供的流程架構

讓你方便的處理任務上的在UI和Worker Thread的狀況

AsyncTask<Params, Progress, Result>

參數部分

Params : 輸入參數的傳入值, 並且在doInBackground內被傳入可使用

Progress : 用來更新處理進度, 用pulishProgress傳入onProgressUpdate內

Result : 在執行完doInBackground後, return的值, 會傳到onPostExecute內

 

而在內部有四個常用的method

onPreExecute() : 在UI Thread執行, 在任務執行前會先進入, 通常用來放執行前的Progress bar

doInBackground(Params... params) : 在Worker Thread執行, 用來處理繁重的工作

onPostExecute(Result result) : 在UI Thread執行. 任務執行完後最後回執行, 可用來顯示結果和關閉Progress bar

onProgressUpdate(Progress... progress) : 在UI Thread執行, 可用pulishProgress來傳入參數和呼叫

 

最後AsyncTask用 .execute(Params) 來使用

 

1. 官網https://developer.android.com/reference/android/os/AsyncTask.html

01.png

 

2. 先宣告一個class繼承AsyncTask, 並且Implement其methods

02.png

 

3. 然後在用override的方式把method給取出

onPreExecute在一開始就會執行, 跑在UI Thread

onPostExecute則是全部做完時才會被呼叫

03.png

 

4. 繁重工作會在doInBackground內執行

可以呼叫publishProgress後在onProgressUpdate更新畫面

04.png

 

5. 最後用Task, execute來執行Task

05.png  

doInBackground
arrow
arrow
    文章標籤
    Android AsyncTask
    全站熱搜

    RX1226 發表在 痞客邦 留言(0) 人氣()