自定義異步任務類的步驟

一、編寫一個類繼承AsyncTask<String,Interger,String>並重寫它的抽象方法:

        doInBackground(String... params),//運行在主線程中

        根據需要還會重寫其他幾個方法:

        onPreExecute();//運行在主線程中

        onProgressUpdate(Integer... values);//運行在主線程中

        onPostExecute(String s);//運行在主線程中

        onCancelled();//運行在主線程中

二、必須在主線程中啓動異步任務,並且這個異步任務對象只能啓動一次,多次啓動會報錯,啓動異步任務的代碼如下:

        假如我們自定義的異步任務類的名字叫MyAsyncTask,

        new MyAsyncTask.execute(path);//path爲網址;

說明:異步任務執行時函數的執行順序:

    1、onPreExecute()====>doInBackground(String... params)====>onPostExecute(String s);

    2、如果在doInBackground(String... params)方法中調用了publishProgress(i),則會自動調用onProgressUpdate(Integer... values),此時函數的調用過程爲:onPreExecute()===>onProgressUpdate(Integer... values)===>publishProgress(i)===>onProgressUpdate(Integer... values)====>onPostExecute(String s);


泛型類AsyncTask<String,Integer,String>的三個泛型參數說明:

       參數一:啓動異步任務是傳遞的實參的數據類型,也是doInBackground(String... params)形參的數據類型;

    參數二:是在doInBackfround(String...params)方法執行中publishProgress(i)方法的實參的數據類型,也是onProgressUpdate(Integer... values)方法中形參的數據類型;

        參數三:是doInBackground(String... params)方法返回值得數據類型,也是onPostExecute(String s)方法中形參的數據類型。



發佈了96 篇原創文章 · 獲贊 27 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章